import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'Fangsong' # 指定使用宋体字体 # 读取数据 df = pd.read_excel("200马力及以上四轮驱动拖拉机.xlsx") # 按照 FactoryName 和 JiJXH 进行分组,计算售价最高值和最低值 grouped = df.groupby(["FactoryName","JiJXH"])['avg_sale'].agg(['min', 'max']).reset_index() grouped = grouped.rename(columns={'min': 'min_sale', 'max': 'max_sale'}) # 将售价最高值和最低值合并到原表中 df = pd.merge(df, grouped, on=["FactoryName","JiJXH"]) # 绘制热力图,并设置颜色取值范围 sns.set_context(font_scale=1.5) plt.figure(figsize=(12,40), dpi=300) sns.heatmap(df.pivot_table(index=["FactoryName","JiJXH"], columns=["shi"], values="avg_sale"), cmap='YlGnBu', annot=True, fmt='.2f', cbar_kws={'label': '单台售价','shrink':0.8,'aspect':40}, vmin=grouped['min_sale'].min(), vmax=grouped['max_sale'].max()) plt.xlabel(None) plt.ylabel(None) plt.title('''200马力及以上四轮驱动拖拉机 各生产企业各型号在不同市单台平均售价''', fontsize=20) # 保存图像 plt.savefig('heatmap.png') plt.show() 保存图片怎么可以是在正中间,且上下位置适中
时间: 2023-08-10 16:04:39 浏览: 106
您好,要让保存的热力图在图片中央并上下居中,可以使用 Matplotlib 中的 `tight_layout` 函数来调整图像的边距。具体实现方法如下:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Fangsong' # 指定使用宋体字体
# 读取数据
df = pd.read_excel("200马力及以上四轮驱动拖拉机.xlsx")
# 按照 FactoryName 和 JiJXH 进行分组,计算售价最高值和最低值
grouped = df.groupby(["FactoryName","JiJXH"])['avg_sale'].agg(['min', 'max']).reset_index()
grouped = grouped.rename(columns={'min': 'min_sale', 'max': 'max_sale'})
# 将售价最高值和最低值合并到原表中
df = pd.merge(df, grouped, on=["FactoryName","JiJXH"])
# 绘制热力图,并设置颜色取值范围
sns.set_context(font_scale=1.5)
plt.figure(figsize=(12,40), dpi=300)
sns.heatmap(df.pivot_table(index=["FactoryName","JiJXH"], columns=["shi"], values="avg_sale"),
cmap='YlGnBu', annot=True, fmt='.2f',
cbar_kws={'label': '单台售价','shrink':0.8,'aspect':40},
vmin=grouped['min_sale'].min(), vmax=grouped['max_sale'].max())
plt.xlabel(None)
plt.ylabel(None)
plt.title('''200马力及以上四轮驱动拖拉机 各生产企业各型号在不同市单台平均售价''', fontsize=20)
# 调整边距,使图像居中
plt.tight_layout()
# 保存图像
plt.savefig('heatmap.png')
plt.show()
```
以上代码中,`tight_layout` 函数会自动调整图像的边距,使图像居中并且上下位置适中。您可以尝试调整 `plt.figure` 函数中的 `figsize` 参数来适应您的图片大小需求。
阅读全文