一、问题描述

具体问题是:

  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))

三、相关参考

  1. 坐标轴相关的官方文档:

  2. 设置图形离 **Y** 轴的距离:

matplotlib(二)——matplotlib控制坐标轴第一个刻度到原点距离的更多相关文章

  1. 使用matplotlib的示例:调整字体-设置刻度、坐标、colormap和colorbar等

    使用matplotlib的示例:调整字体-设置刻度.坐标.colormap和colorbar等 2013-08-09 19:04 27805人阅读 评论(1) 收藏 举报  分类: Python(71 ...

  2. matplotlib.pyplot库函数关于坐标轴显示的支持

    matplotlib.pyplot库函数关于坐标轴显示的支持 https://blog.csdn.net/Stark_595/article/details/80787005?depth_1-utm_ ...

  3. ECharts修改坐标轴,坐标轴字体,坐标轴网格样式以及控制坐标轴是否显示

    转自:http://blog.csdn.net/kirinlau/article/details/72876689 首先要将一个图表显示在前端页面上: var myChart = echarts.in ...

  4. Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性

    场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 在上面 ...

  5. 2、Arx二次开发创建第一个应用程序

    一.本节课程 Arx二次开发创建第一个应用程序 二.本节要讲解的知识点 1.手动创建ARX的应用的步骤. 2.应用向导创建ARX应用程序的步骤. 三.具体内容 1.需求:创建一个Hello World ...

  6. 【转载】ArcBall二维控制三维旋转

    原文:http://oviliazhang.diandian.com/post/2012-05-19/40027878859 由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了.Ar ...

  7. 二 ASP.NET MVC 第一个程序 hello world

    二 ASP.NET MVC 第一个程序 hello world   https://blog.csdn.net/xmroom/article/details/51335917 我使用的Visual s ...

  8. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  9. matplotlib 可视化 —— matplotlib.patches

    官方帮助文档 patches - Matplotlib 1.5.1 documentation patches 下主要包含的常用图形类有: Eclipse Circle Wedge 1. plt.gc ...

随机推荐

  1. windows7安装完上不了网

    安装完Windows7后发现上不了网,网卡驱动没有安装的原因:但是没有网怎么下载驱动呢,,先装一个网卡版驱动精灵(貌似叫驱动精灵万能网卡版)什么的安装一个网卡驱动,就解决了

  2. JAVA多线程面试题目

    1,java中有几种方法可以实现一个线程? 答:在Java中实现一个线程有两种方法,第一是实现Runnable接口实现它的run()方法,第二种是继承Thread类,覆盖它的run()方法.这两种方法 ...

  3. 开始使用JQuery 方法

    使用jQuery需要3个基本步骤: 1. 下载jQuery.js并保存在网页可以存取的位置.下载链接:dowload 2. 在HTML的head里引用jQuery.js 3. 运用jQuery的方法 ...

  4. 一张图掌握移动Web前端所有技术(大前端、工程化、预编译、自动化)

    你要的移动web前端都在这里! 大前端方向:移动Web前端.Native客户端.Node.js. 大前端框架:React.Vue.js.Koa  跨终端技术:HTML 5.CSS 3.JavaScri ...

  5. (2017.9.27) 自定义列表项 list-style 使用心得

    今天给某公司做招聘专页.早上完成设计图,下午开始排版.页面套用了我之前做的某人才局的招聘页面,导航栏.banner 很快就出来了.这次内容里我有些地方用了列表,当然要用 <ul> < ...

  6. 2013 QConf上海软件开发大会总结

    带着工作中的一些疑问,我参加了在上海举办的QConf 全球软件开发大会.会议以主题的形式按分会场召开,我主要选择知名网站案例分析.大数据处理技术.高效能团队建设和金融系统架构与设计四个主题内容.三天会 ...

  7. Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程

    之前写过俩相关的教程,最近发现插件官方更新了不少内容,所以也更新一篇Firebase Admob Unity3d插件的教程,希望能帮到大家. Firebase Admob Unity3d插件是一个Un ...

  8. ArcGIS API for JavaScript开发初探——HelloMap

    1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...

  9. SpringBoot的启动报错

    1.

  10. mongodb 认证方式(version:3.0.4)

    之前一直在本机上跑,前段时间把后台架到云服务器上了,在settings里加上了username和password,希望同步的时候修改一下settings就能在本地测试.   因为云服务器端数据库连接需 ...