繁体   English   中英

Matplotlib Plot 和 Colorbar 问题

[英]Matplotlib Plot and Colorbar issues

我有以下 plot,但是,我正在努力解决以下 3 个问题....

  1. 如何将 X 轴标签 (1-31) 移动到 plot 的顶部?
  2. 如何更改颜色条的格式(从 7000 到 7k 等)
  3. 如何将颜色从灰色更改为另一个 cmap,如“Reds”?
  4. 我可以更改图形大小吗? plt.figure(figsize=(20,10)) 不起作用?

在此处输入图像描述

data1 = pd.read_csv("a2data/data1.csv")
data2 = pd.read_csv("a2data/data2.csv")
merged_df = pd.concat([data1, data2])
merged_df.set_index(['month', 'day'], inplace=True)
merged_df.sort_index(inplace=True)
merged_df2=merged_df.groupby(['month', 'day']).deaths.mean().unstack('day')   
plt.imshow(merged_df2)
plt.xticks(np.arange(merged_df2.shape[1]), merged_df2.columns)
plt.yticks(np.arange(merged_df2.shape[0]), merged_df2.index)
plt.colorbar(orientation="horizontal")
plt.show()

我们试试吧:

# create a single subplot to access the axis
fig, ax = plt.subplots()

# passing the `cmap` for custom color
plt.imshow(df, cmap='hot', origin='upper')

# draw the colorbar
cb = plt.colorbar(orientation="horizontal")

# extract the ticks on colorbar
ticklabels = cb.get_ticks()

# reformat the ticks
cb.set_ticks(ticklabels)
cb.set_ticklabels([f'{int(x//1000)}K' for x in ticklabels])

# move x ticks to the top
ax.xaxis.tick_top()

plt.show()

Output:

在此处输入图像描述

试试这个来反转 y 轴:

ax = plt.yticks(np.arange(merged_df2.shape[0]), merged_df2.index)
plt.colorbar(orientation="horizontal")
ax.invert_yaxis()
plt.show()

我认为对于颜色,您可以在 pyplot 文档https://matplotlib.org/3.3.1/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot中找到更好的颜色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM