梁爽Shuang 2025-04-16 22:02 采纳率: 72.5%
浏览 4
已结题

使用plt绘制热力图怎么全部显示标签

img


这是我生成的热力图
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

读取 CSV 文件

df = pd.read_csv("G:/bc_data.csv")
df['diagnosis'] = df['diagnosis'].map({'M': 1, 'B': 0})
df.drop(columns=['id'], inplace=True)

计算相关矩阵

corr_matrix = df.corr()

创建一个热力图

plt.figure(figsize=(100, 100)) # 设置图像大小

使用 matshow 绘制相关矩阵的热力图

cax = plt.matshow(corr_matrix, cmap='coolwarm') # 选择颜色地图,coolwarm 是一种渐变色

添加颜色条

plt.colorbar(cax)

设置坐标轴标签

plt.xticks(np.arange(len(corr_matrix.columns)), corr_matrix.columns, rotation=90, fontsize=10, ha='center', position=(0.1, -0.1))
plt.yticks(np.arange(len(corr_matrix.columns)), corr_matrix.columns, fontsize=10)

设置标签位置

调整图形的下方位置,以便有更多空间显示标签

添加标题

plt.subplots_adjust(bottom=0.35, top=0.9, left=0.1, right=0.9)
plt.title('Heat map of the characteristics of cancer', fontsize=15)

显示图像

plt.tight_layout()
plt.show()这是我的代码,怎么让标签不和图像重合

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-16 22:24
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    使用plt绘制热力图怎么全部显示标签

    你使用 matplotlib 库绘制热力图,但是热力图的标签可能会被截断。为了显示所有标签,你可以使用 set_xticklabelsset_yticklabels 方法来设置 x 轴和 y 轴的标签。

    以下是一个简单的示例代码:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 生成热力图数据
    data = np.random.rand(10, 10)
    
    # 绘制热力图
    plt.imshow(data, cmap='hot', interpolation='nearest')
    
    # 设置 x 轴和 y 轴的标签
    plt.xticks(range(len(data[0])), [f'Label {i}' for i in range(len(data[0]))])
    plt.yticks(range(len(data)), [f'Label {i}' for i in range(len(data))])
    
    # 显示图例
    plt.colorbar()
    
    # 显示图表
    plt.show()
    

    在上面的代码中,我们使用 xticksyticks 方法设置 x 轴和 y 轴的标签,然后使用 colorbar 方法显示图例。这样,你可以看到所有的标签。

    如果你的数据非常大,可能需要使用 set_xticklabelsset_yticklabels 方法来设置标签的旋转角度,以免标签被截断。例如:

    plt.xticks(range(len(data[0])), [f'Label {i}' for i in range(len(data[0]))], rotation=45)
    plt.yticks(range(len(data)), [f'Label {i}' for i in range(len(data))], rotation=45)
    

    这将使标签旋转 45 度,以便显示更多的标签。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 4月16日