问题解决:Python作图时坐标轴label显示不全

问题描述

在用matplotlib或sns作图时,横坐标轴是每隔两个显示一个,如图:问题解决:Python作图时坐标轴label显示不全_第1张图片
代码如下:


import seaborn as sns
​
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
​
sns.heatmap(outdata02,linewidths = 0.05, cmap=cmap, center=None,robust=True,mask=(outdata02<500))#plt.figure(figsize=(15,10),dpi=80)
plt.show()

尝试了修改x坐标的显示范围:

x=np.arrange(0,23,1)
plt.xticks(x)

结果x轴的label重叠显示:
问题解决:Python作图时坐标轴label显示不全_第2张图片
修改图片大小也不管用,后来得知应该在作图时加入:
xticklabeles=1的设置,代码如下:

import seaborn as sns

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(outdata02,linewidths = 0.05, cmap=cmap, center=None,robust=True,mask=(outdata02<500),xticklabels=1)

#plt.figure(figsize=(15,10),dpi=80)
plt.show()

结果如图:
问题解决:Python作图时坐标轴label显示不全_第3张图片
显示全了所有x轴的label,可惜还是重叠了。
应该在作图时加入这一行:

%matplotlib notebook

问题解决:Python作图时坐标轴label显示不全_第4张图片

总结:

1)使用xticklabels=1设置label显示间隔

2)使用%matplotlib notebook来方便的得到想要的图片大小

最终的代码如下:

import seaborn as sns

%matplotlib notebook
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(outdata02,linewidths = 0.05, cmap=cmap, center=None,robust=True,mask=(outdata02<500),xticklabels=1)

#plt.figure(figsize=(15,10),dpi=80)
plt.show()

你可能感兴趣的:(Python学习,问题解决)