ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 刻度线在中间,让柱状图或者格子与刻度线对齐(总结版)

2021-06-18 22:32:31  阅读:202  来源: 互联网

标签:39 plt python xx 柱状图 38 刻度 速度


画图的时候,经常遇到刻度线和柱子、格子对不齐的情况,看起来很奇怪。看了几篇博客后亲自实践了一下,给出总结性的代码。其实就是把刻度线改一下位置。
博客是:
博客1 博客2

下面是我原来的代码,生成相关系数矩阵的热力图:

data_station = {
        '速度_1': [38, 38, 40, 62, 108, 38],
        '速度_2': [31, 31, 38, 37, 39, 32],
        '速度_3': [90, 86, 79, 90, 129, 86],
        '速度_4': [19, 19, 19, 20, 17, 39],
        '速度_5': [43, 39, 39, 41, 38, 39],
        '速度_6': [55, 49, 47, 48, 47, 47],
        '速度_7': [35, 30, 29, 30, 27, 30]}
plt.figure(figsize=(9, 8))
df3 = pd.DataFrame(data_station)
df4 = np.corrcoef(df3)
sns.heatmap(df4, vmin=-1, vmax=1, cmap=sns.color_palette('RdBu', n_colors=128), annot=True)
xx = [1, 2, 3, 4, 5, 6]
labels = ['速度_1', '速度_1', '速度_1', '速度_1', '速度_1', '速度_1']
plt.xticks(xx, labels, rotation='horizontal')
plt.show()

效果图长这样,可以明显的感受到x轴的视觉难受!
没有修改的热力图
修改x轴刻度线的代码这一个

plt.xticks(xx, labels, rotation='horizontal')

其中,xx是我们的刻度list。可以发现每一条刻度线都在每个格子的最右侧,也就是对于每个格子的长度[0, 1]来说,都位于1的位置。那么,只需要让它左移0.5就好,也就是在原来的位置坐标上-0.5:

plt.xticks([index - 0.5 for index in xx], labels, rotation='horizontal')

当然,该成多少就会有相应的效果。想要让其移动到左侧,便-1。
这是热力图的效果,如果是画柱状图,则需要根据柱子的width去计算平移的数值,具体可以看上面博客2里的指示。

改好后效果图变成:
在这里插入图片描述

如果学会了,请点个赞吧!

标签:39,plt,python,xx,柱状图,38,刻度,速度
来源: https://blog.csdn.net/csdnznl/article/details/118034626

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有