import numpy as np import scipy.stats as ss import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df=pd.read_excel("./tmp_apply.xlsx") sns.set_context(font_scale=20) plt.rcParams['font.family'] = 'FangSong' plv_tb=pd.pivot_table(df,values="sale",index=["FactoryName","JiJXH"],columns=["Xian"],aggfunc=np.mean) fig, ax = plt.subplots(figsize=(200,10)) sns.heatmap(plv_tb,vmin=plv_tb.min().min(), vmax=plv_tb.max().max(),cmap=sns.color_palette("RdYlBu",n_colors=10),annot=True, fmt='g', annot_kws={"size": 20}, ax=ax) plt.subplots_adjust(left=0, bottom=0) # 调整左边和底部的距离 plt.show()怎样使列xian可以换行变成5行列,这样图片就可以看清楚
时间: 2023-12-06 14:45:43 浏览: 67
你可以使用 `.set_xticklabels()` 方法来设置 x 轴标签的显示格式,例如:
```
# 获取 x 轴标签
xtick_labels = ax.get_xticklabels()
# 设置 x 轴标签的显示格式
new_xtick_labels = []
for label in xtick_labels:
name = label.get_text()
if len(name) > 5:
# 如果标签名字长度大于 5,就将它拆成 5 行
new_name = '\n'.join([name[i:i+5] for i in range(0, len(name), 5)])
new_xtick_labels.append(new_name)
else:
new_xtick_labels.append(name)
ax.set_xticklabels(new_xtick_labels, fontsize=20, rotation=0)
```
这里的关键是将每个标签名字拆成 5 行,然后使用 `\n` 来连接这 5 行,从而实现换行的效果。你可以根据实际情况更改拆分长度和字体大小等参数。
相关问题
import numpy as np import scipy.stats as ss import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df=pd.read_excel("./tmp_apply3.xlsx")读入后怎么取字段
你可以使用 Pandas 的 `loc` 或 `iloc` 方法来取出 DataFrame 中的特定字段。具体而言,`loc` 方法可以通过列名来取出字段,而 `iloc` 方法可以通过列的索引来取出字段。以下是两种方法的示例:
假设你要取出 `df` 中的 `sale` 和 `date` 两个字段,其中 `sale` 字段在第 2 列,`date` 字段在第 3 列,你可以这样做:
使用 `loc` 方法:
```python
# 通过列名取出字段
df_new = df.loc[:, ["sale", "date"]]
```
使用 `iloc` 方法:
```python
# 通过列的索引取出字段
df_new = df.iloc[:, [1, 2]]
```
上述代码中,`df_new` 就是取出 `df` 中的 `sale` 和 `date` 两个字段后得到的新 DataFrame。其中 `:` 表示取出所有行,`["sale", "date"]` 或 `[1, 2]` 表示取出第 2 列和第 3 列。你可以根据实际需要修改这些代码。
阅读全文