欢迎访问mehome的博客

Tomorrow is another day.
Fork me on GitHub

matplotlib(二)——matplotlib控制坐标轴第一个刻度到原点距离

一、问题描述

具体问题是:

  1. 用python库matplotlib进行数据的图表展示;
  2. 横坐标是自定义统计值;
  3. 保存矢量图(svg),保存后发现横坐的第一个点离坐标原点距离较大,导致图形离y轴较远,让画出的图看着不舒服;
  4. 如果用jpg图片发现也有这个问题,但是控制台有参数可以调整,自动保存图片则需要参数控制。

二、解决办法

解决思路:

  • 查一下相关坐标轴的参数。

解决办法:

  1. 方法1:
    1. 通过参数:ax.set_xlim(-1,)显示制定横坐标的范围。
    2. 这种方法横坐标多余的(坐标轴右边的)不会显示
  2. 方法2:
    1. 参数ax.yaxis.set_ticks_position('left')设置向左移动
    2. 参数:ax.spines['left'].set_position(('data', -1))设置距离
    3. 这种方法是移动纵坐标的坐标轴,会显示坐标轴右边的横轴和数据

方法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()
方法1代码

 

方法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()
方法2代码

设置图形离 **X** 轴的距离的参数:

  1 ax.xaxis.set_ticks_position('bottom')
  2 ax.spines['bottom'].set_position(('data', 0))
View Code

三、相关参考

  1. 坐标轴相关的官方文档:
  2. 设置图形离 **Y** 轴的距离:
posted @ 2019-03-28 16:12  mehome  阅读(7515)  评论(0编辑  收藏  举报