python数据可视化技巧的100个练习 -- 5. 相关性矩阵的热力图
重要性★★★★☆
难度★★★☆☆
你是一家零售公司的数据分析师,公司提供了一个包含各种销售指标的数据集。你的任务是创建一个相关性矩阵的热力图,以识别不同指标之间的关系。这将帮助公司了解哪些指标密切相关,并且可以相互影响。
生成一个包含至少五个不同销售指标的样本数据集,并使用 Python 创建相关性矩阵的热力图。热力图应清楚显示各指标之间的相关性值。
使用以下代码生成样本数据集:
【数据生成代码示例】
import pandas as pdimport numpy as npnp.random.seed(0)data = pd.DataFrame({ 'Sales': np.random.rand(100) * 1000, 'Profit': np.random.rand(100) * 500, 'Discount': np.random.rand(100) * 50, 'Customer_Age': np.random.randint(18, 70, size=100), 'Customer_Satisfaction': np.random.randint(1, 10, size=100)})
【图表答案】
【代码答案】
import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as pltnp.random.seed(0)data = pd.DataFrame({ 'Sales': np.random.rand(100) * 1000, 'Profit': np.random.rand(100) * 500, 'Discount': np.random.rand(100) * 50, 'Customer_Age': np.random.randint(18, 70, size=100), 'Customer_Satisfaction': np.random.randint(1, 10, size=100)})correlation_matrix = data.corr()sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')plt.title('相关性矩阵的热力图')plt.show()
要创建相关性矩阵的热力图,请按照以下步骤操作:
导入必要的库:你需要 pandas 用于数据处理,numpy 用于数值运算,seaborn 用于创建热力图,matplotlib 用于显示图表。
生成样本数据集:数据集包括五个指标:“Sales”(销售额)、“Profit”(利润)、“Discount”(折扣)、“Customer_Age”(客户年龄)和“Customer_Satisfaction”(客户满意度)。使用 numpy 为每个指标生成随机值。
计算相关性矩阵:使用 pandas 的 corr() 方法计算数据集的相关性矩阵。该矩阵显示了每对指标之间的相关系数。
创建热力图:使用 seaborn 的 heatmap() 函数创建热力图。annot=True 参数将相关性值添加到热力图的单元格中,cmap='coolwarm' 设置了颜色方案。
显示热力图:使用 matplotlib 的 show() 函数显示热力图。使用 plt.title() 设置标题。
这个过程有助于可视化不同指标之间的关系,便于识别哪些指标呈正相关或负相关。
【小知识】
相关系数:相关系数的范围是 -1 到 1。接近 1 的值表示强正相关,接近 -1 的值表示强负相关,接近 0 的值表示无相关性。
热力图颜色方案:热力图中使用的颜色方案对其可读性有很大影响。常见的方案包括“coolwarm”、“viridis”和“plasma”。每种方案都有其优势,具体取决于数据分布和受众偏好。
Seaborn 库:Seaborn 基于 Matplotlib 构建,提供了一个高级接口,用于绘制吸引人且信息丰富的统计图形。它特别适用于可视化复杂的数据集。