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()
方法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))
三、相关参考
- 坐标轴相关的官方文档:
- 设置图形离 **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
matplotlib(二)——matplotlib控制坐标轴第一个刻度到原点距离的更多相关文章
- 使用matplotlib的示例:调整字体-设置刻度、坐标、colormap和colorbar等
使用matplotlib的示例:调整字体-设置刻度.坐标.colormap和colorbar等 2013-08-09 19:04 27805人阅读 评论(1) 收藏 举报 分类: Python(71 ...
- matplotlib.pyplot库函数关于坐标轴显示的支持
matplotlib.pyplot库函数关于坐标轴显示的支持 https://blog.csdn.net/Stark_595/article/details/80787005?depth_1-utm_ ...
- ECharts修改坐标轴,坐标轴字体,坐标轴网格样式以及控制坐标轴是否显示
转自:http://blog.csdn.net/kirinlau/article/details/72876689 首先要将一个图表显示在前端页面上: var myChart = echarts.in ...
- Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性
场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 在上面 ...
- 2、Arx二次开发创建第一个应用程序
一.本节课程 Arx二次开发创建第一个应用程序 二.本节要讲解的知识点 1.手动创建ARX的应用的步骤. 2.应用向导创建ARX应用程序的步骤. 三.具体内容 1.需求:创建一个Hello World ...
- 【转载】ArcBall二维控制三维旋转
原文:http://oviliazhang.diandian.com/post/2012-05-19/40027878859 由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了.Ar ...
- 二 ASP.NET MVC 第一个程序 hello world
二 ASP.NET MVC 第一个程序 hello world https://blog.csdn.net/xmroom/article/details/51335917 我使用的Visual s ...
- struts2官方 中文教程 系列十二:控制标签
介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...
- matplotlib 可视化 —— matplotlib.patches
官方帮助文档 patches - Matplotlib 1.5.1 documentation patches 下主要包含的常用图形类有: Eclipse Circle Wedge 1. plt.gc ...
随机推荐
- 《从0到1学习Flink》—— Flink Data transformation(转换)
前言 在第一篇介绍 Flink 的文章 <<从0到1学习Flink>-- Apache Flink 介绍> 中就说过 Flink 程序的结构 Flink 应用程序结构就是如上图 ...
- pat1099. Build A Binary Search Tree (30)
1099. Build A Binary Search Tree (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...
- 移植mavlink协议到STM32详细教程
1准备材料, 首先准备一个带串口的stm32程序(这里选用整点原子的官方串口例程这里自己去找不讲)作者:恒久力行 QQ:624668529,然后去mavlink官网下载mavlink源码,这里重点讲解 ...
- JQuery初识(三 )
一丶JQuery的文档操作 1.插入操作: 父元素.append(子元素) 解释:追加某元素,在父元素中添加新的子元素.子元素可以为:stirng|element(js对象)|JQuery元素 var ...
- img IE下支持最大宽度
border:0 none; max-width: 560px; height:auto; width:expression(this.width > 600 ? "600px&quo ...
- eaysui 子页面刷新父页面datagrid
近期碰到这样一个问题,子页面操作后需要刷新父页面datagrid元素,刚开始用这种方式刷新,$("#talbe",window.parent.document).datagrid( ...
- 弹框&可用于判断
较常用的弹框:(3种) 1.prompt("显示用户的文本","输入域的默认值"): print();显示打印的对话框: find();显示查找的对话框: (用 ...
- Oracle Business Intelligence Enterprise Edition 12.2.1.2.0 Books
Oracle Business Intelligence Enterprise Edition 12.2.1.2.0 Books Documentation for Oracle Business I ...
- SQL Server 08版与14版处理重复行的方式
在项目中,利用循环拼接成了插入多行数据的SQL语句: Insert into table(col1,col2)vaules(value11,value21); Insert into table(co ...
- ASP.NET的三种开发模式
前言 ASP.NET 是一个免费的Web开发框架,是由微软在.NET Framework框架中所提供的,或者说ASP.NET是开发Web应用程序的类库,封装在System.Web.dll 文件中.AS ...