matplotlib(二)——matplotlib控制坐标轴第一个刻度到原点距离
一、问题描述
具体问题是:
- 用python库matplotlib进行数据的图表展示;
- 横坐标是自定义统计值;
- 保存矢量图(svg),保存后发现横坐的第一个点离坐标原点距离较大,导致图形离y轴较远,让画出的图看着不舒服;
- 如果用jpg图片发现也有这个问题,但是控制台有参数可以调整,自动保存图片则需要参数控制。
二、解决办法
解决思路:
- 查一下相关坐标轴的参数。
解决办法:
- 方法1:
- 通过参数:ax.set_xlim(-1,)显示制定横坐标的范围。
- 这种方法横坐标多余的(坐标轴右边的)不会显示。
- 方法2:
- 参数ax.yaxis.set_ticks_position('left')设置向左移动
- 参数:ax.spines['left'].set_position(('data', -1))设置距离
- 这种方法是移动纵坐标的坐标轴,会显示坐标轴右边的横轴和数据。
方法1示例:
1 import pandas as pd 2 import matplotlib.pyplot as plt 3 data = pd.read_csv('statistic_char.csv',index_col=0) 4 5 fig, ax = plt.subplots() 6 #ax = plt.gca() 7 plt.plot(list(data.index),data) 8 plt.yticks(range(0,35000000,2000000)) 9 10 fig.set_figwidth(15) 11 fig.tight_layout() 12 ax.set_xlim(-1,) 13 #ax.yaxis.set_ticks_position('left') 14 #ax.spines['left'].set_position(('data', 0)) 15 plt.show()
方法2示例:
1 import pandas as pd 2 import matplotlib.pyplot as plt 3 data = pd.read_csv('statistic_char.csv',index_col=0) 4 fig, ax = plt.subplots() 5 plt.plot(list(data.index),data) 6 plt.yticks(range(0,35000000,2000000)) 7 fig.set_figwidth(15) 8 fig.tight_layout() 9 ax.yaxis.set_ticks_position('left') 10 ax.spines['left'].set_position(('data', -1)) 11 plt.show()
设置图形离 **X** 轴的距离的参数:
1 ax.xaxis.set_ticks_position('bottom') 2 ax.spines['bottom'].set_position(('data', 0))
三、相关参考
- 坐标轴相关的官方文档:
- 设置图形离 **Y** 轴的距离:
- https://matplotlib.org/api/_as_gen/matplotlib.axis.YAxis.set_ticks_position.html#matplotlib.axis.YAxis.set_ticks_position
- https://matplotlib.org/api/spines_api.html?highlight=spines#matplotlib.spines.Spine.set_position
- https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_xlim.html?highlight=set_xlim
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。