一张表字段含有FactoryName、JiJXH、shi、sale_avg,如何按照FactoryName、JiJXH绘制每个市sale热力图
时间: 2023-07-04 18:11:40 浏览: 91
你可以使用 `pivot_table` 将表按照 `FactoryName` 和 `JiJXH` 进行透视,然后按照需要的方式对 `shi` 和 `sale_avg` 进行聚合,最后使用 `sns.heatmap` 绘制热力图。下面是具体的代码示例:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_excel("./data.xlsx")
# 按照 FactoryName 和 JiJXH 进行透视
table = pd.pivot_table(df, values='sale_avg', index=['FactoryName'], columns=['JiJXH', 'shi'], aggfunc='mean')
# 绘制热力图
sns.set_context(font_scale=1.5)
plt.figure(figsize=(12, 8))
sns.heatmap(table, cmap='YlGnBu', annot=True, fmt='.2f', cbar_kws={'label': '销售额'})
plt.title('各厂家各型号在不同市的平均销售额')
plt.show()
```
在这个示例中,我们将数据透视成以 `FactoryName` 为行索引,以 `JiJXH` 和 `shi` 为列索引,以 `sale_avg` 的平均值为值,然后使用 `sns.heatmap` 绘制热力图。其中,`cmap` 参数指定了颜色图谱,`annot=True` 表示在热力图上显示数值,`fmt='.2f'` 指定数值的格式为保留两位小数的浮点数,`cbar_kws={'label': '销售额'}` 指定了颜色条上的标签为“销售额”。
阅读全文