matplotlib y轴标注显示不全以及subplot调整的问题

问题:

我想在y轴显示的标注太长,想把它变成两行显示,发现生成的图形只显示的第二行的字,把第一行的字挤出去

想要的是显示两行这样子的



现实却是这样子

主要相关的api有:

  • plt.subplots_adjust
  • set_ylabel
  • plt.text

解决思路

来自matplotlib的官网,以及图示

  1. 当出现右边显示不全的时候,第一感觉是:应该可以通过set_ylabel 来设置y轴标注的位置和大小,发现set_ylabel只能设置labelpad ,没有位置的参数;
  2. 然后找到了可以用text设置标注字体的位置和方向,但是要多次定位,尝试,发现不方便;
  3. 那么想到的是应该可以设置plot的位置吧,用ax1.plot?找了下,也没看到,不爽;
  4. 在show的图形界面发现一个移动的按钮
  5. 移动left亦可以显示出y轴的标注了,那么我应该只需要在程序中设置一下left的参数既可以了吧,在上面matplotlib的example中,找到了我想要的subplots_adjust
  6. 即有了下面的源代码,满足设置要求。

源代码如下:

import matplotlib.pyplot as plt
import numpy as np
from numpy import abs size=[5,10,20,30,50,100]
avg=[-0.2896,0.073865632,0.034858287,-0.092241705,-0.022924236,0.016541661]
avr=[0.032,0.077757872,0.090351641,0.036522663,0.034413038,0.096587464] fig = plt.figure() ax1 = fig.add_subplot(211)
lns1 = ax1.plot(size, trackPos_avg,color='blue',label='error average',linestyle='-',linewidth=1.9)
ax1.set_ylabel('deviation from\ncentral line ($m$)',fontsize=18, labelpad = 0.5) plt.xticks(fontsize = 17)#对坐标的值数值,大小限制
plt.yticks(fontsize = 17) ax2 = fig.add_subplot(212)
ax2.set_ylabel('standard \nvariance ($m^2$)',fontsize=18,labelpad = 12.5)
lns2 = ax2.plot(size, avr, color='red',label='mean square error',linestyle='-',linewidth=1.9) plt.xticks(fontsize = 17)#对坐标的值数值,大小限制
plt.yticks(fontsize = 17)
ax2.set_xlabel('replay size',fontsize=18) plt.subplots_adjust(left=0.18, wspace=0.25, hspace=0.25,
bottom=0.13, top=0.91) \#plt.text(0.4, 0.4, 'deviation from\n central line ($m$)', rotation=90, ha='left') \#plt.legend(prop={'size':18}) # loc='upper left', \#fig.savefig('./figure/error_paper.eps', format='eps', dpi=1000)
fig.savefig('./figure/error_paper.png', dpi=1000) plt.show()

可以下面的yticks,限制横纵坐标的值

plt.xticks(fontsize = 17)#对坐标的值数值,大小限制
plt.yticks([0.01,0.03,0.05,0.07,0.09],fontsize = 17)

matplotlib y轴标注显示不全以及subplot调整的问题的更多相关文章

  1. echarts Y轴名称显示不全(转载)

    转载来源:https://blog.csdn.net/qq8241994/article/details/90720657今天在项目的开发中遇到的一个问题,echarts Y轴左侧的文字太多了,显示不 ...

  2. [置顶] echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐)

    echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置.(当然yAxis ...

  3. echarts x轴文字显示不全解决办法

    标题:echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐):http://blog.csdn.net/kebi007/article/details/68488694

  4. echarts x轴文字显示不全(解决方案)

    echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置.(当然yAxis ...

  5. 百度echarts插件x轴坐标显示不全决解方法

    X轴显示不全: xAxis.axisLabel.interval number, Function [ default: 'auto' ] 坐标轴刻度标签的显示间隔,在类目轴中有效. 默认会采用标签不 ...

  6. fusioncharts Y轴不显示中文的解决方法(转载)

    使用fusionChart主要是被其界面吸引了,各类图表都很好看,下载以后文档也很周全,支持的语言也很多种 ,容易上手.fusionChart工作原理主要是通过后台传xml数据源给报表前台flash ...

  7. EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等

    示例里工作一般情况是够用了,更复杂的可以查询教程: title 官方解说:http://echarts.baidu.com/option.html#title 坐标相关: X轴:http://echa ...

  8. TeeChart的X轴为时间,多个Y轴的显示

    最后上代码 public partial class Test : Form { private TChart tChart = new TChart(); ; public Test() { Ini ...

  9. Echarts Y轴min显示奇葩问题(做此记录)

    项目需求是根据不同情况显示最大值最小值   有9-35  12-50 9-50 三种情况 前面两种可以显示出来  但是9-50的话  最小值9显示不出来  8,7等就可以显示出来 后面想到强制从最小值 ...

随机推荐

  1. 87. Scramble String *HARD* 动态规划

    Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...

  2. PHP:第一章——PHP中字符运算符、比较运算符、错误控制运算符

    //字符串运算符: //$a='PHP'; //$b='SEO'; //echo $a.$b;//输出:PHPSEO //echo $a.=$b;//等价于:$a=$a.$b;输出:PHPSEO // ...

  3. 微信小程序wx.chooseImage和wx.previewImage的综合使用(图片上传可以限制个数)

    本例从微信小程序的组件扒下来的. WXML: <view class="weui-cell"> <view class="weui-cell__bd&q ...

  4. POJ 2752 KMP中next数组的理解

    感觉这里讲的挺好的.http://cavenkaka.iteye.com/blog/1569062 就是不断递归next数组.长度不断减小. 题意:给你一个串,如果这个串存在一个长度为n的前缀串,和长 ...

  5. iOS ipv6 被拒

    1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧. 2.确保你用的sdk支持ipv6,这个自己去看文档就行. 3.终端  dig +nocmd + nos ...

  6. 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(五)

    MyEclipse限时秒杀!活动火热开启中>> [MyEclipse最新版下载] 六.部署到JBoss服务器 1. 右键单击Servers视图,然后选择New>Server,选择您安 ...

  7. MyEclipse 2017 Stable 2.0发布|附下载

    MyEclipse个人开发者专享6.9折!仅剩最后3天!在线订购>> 2017 Stable 2.0版本带来了新的功能和修复,从Stable 1.0以来,已经发布了几个版本的Angular ...

  8. PostgreSQL角色和权限理解

    1.继承的权限只是继承该组的表的权限,用户对应的管理员权限则不会被继承. 2.inherit权限是说本角色是否继承别人的权限,而不是本权限能否被别的角色继承.   postgres=# create ...

  9. Apache 服务器认证 和重写

    htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以帮我们实现:网页301重定向.自定义404错误页面.改变文件扩展名.允许/阻止特定的 ...

  10. Apple原装扫描二维码指定区域

    之前记录了用Apple原装的AVFoundationo类库扫描二维码:http://www.cnblogs.com/foxting/p/4733226.html,此篇记录下如何设置扫描区域. AVCa ...