一、前言

本文主要使用matplotlib,实现双纵轴坐标的图表绘制。笔者python版本为2.7.15。

二、实践及效果

1. 需求

某个有这么一个成绩表,分别是名字,本次成绩以及进步幅度,现在需要把这个成绩单转为这样一个图表:

横轴是同学姓名,成绩用直方图表示,进步幅度用折线图表示,他们公用同一个横轴。

姓名

本次成绩

进步幅度

小给

88

23%

小人

78

10%

小民

90

5%

小一

66

9%

小个

80

22%

小胶

48

5%

小带

77

19%

2. 核心函数Axes.twinx()

搬运官网的说明:

Create a twin Axes sharing the xaxis

Create a new Axes instance with an invisible x-axis and an independent y-axis positioned opposite to the original one (i.e. at right). The x-axis autoscale setting will be inherited from the original Axes.

大意就是使用这个函数,在原来的坐标系中新建一个共享x轴的双胞胎坐标系,类似的还有twiny。

3. 实现代码

#-*- coding:utf-8 -*-

importnumpy as npimportmatplotlib.pyplot as pltimportmatplotlib.ticker as mtickdefmain():

plt.rcdefaults()

plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘] #指定默认字体

plt.rcParams[‘axes.unicode_minus‘] = False #解决保存图像是负号‘-‘显示为方块的问题

info_list= [(u"小给", 88, 23), (u"小人", 78, 10), (u"小民", 90, 5), (u"小一", 66, 9), (u"小个", 80, 22), (u"小胶", 48, 5), (u"小带", 77, 19)]

positions=np.arange(len(info_list))

names= [row[0] for row ininfo_list]

scores= [row[1] for row ininfo_list]

proges= [row[2] for row ininfo_list]

fig, ax1=plt.subplots()#成绩直方图

ax1.bar(positions, scores, width=0.6, align=‘center‘, color=‘r‘, label=u"成绩")

ax1.set_xticks(positions)

ax1.set_xticklabels(names)

ax1.set_xlabel(u"名字")

ax1.set_ylabel(u"成绩")

max_score=max(scores)

ax1.set_ylim(0, int(max_score* 1.2))#成绩标签

for x,y inzip(positions, scores):

ax1.text(x, y+ max_score * 0.02, y, ha=‘center‘, va=‘center‘, fontsize=13)#变动折线图

ax2 =ax1.twinx()

ax2.plot(positions, proges,‘o-‘, label=u"进步幅度")

max_proges=max(proges)#变化率标签

for x,y inzip(positions, proges):

ax2.text(x, y+ max_proges * 0.02, (‘%.1f%%‘ %y), ha=‘center‘, va= ‘bottom‘, fontsize=13)#设置纵轴格式

fmt = ‘%.1f%%‘yticks=mtick.FormatStrFormatter(fmt)

ax2.yaxis.set_major_formatter(yticks)

ax2.set_ylim(0, int(max_proges* 1.2))

ax2.set_ylabel(u"进步幅度")#图例

handles1, labels1 =ax1.get_legend_handles_labels()

handles2, labels2=ax2.get_legend_handles_labels()

plt.legend(handles1+handles2, labels1+labels2, loc=‘upper right‘)

plt.show()if __name__ == ‘__main__‘:

main()

Technorati Tags: python,matplotlib

4. 效果图

三、参考

(完)

python坐标网matplotlib_使用matplotlib画双纵轴坐标相关推荐

  1. MATLAB画双纵轴曲线。

    MATLAB画双纵轴曲线. 原文地址:Matlab plotyy画双纵坐标图实例作者:gypsy Matlab plotyy画双纵坐标图实例 x = 0:0.01:20; y1 = 200*exp(- ...

  2. 用python和matplotlib画双坐标系曲线

    有时候写论文的时候不免会遇到画曲线图,而且还有可能需要画双坐标系(双Y轴)的曲线图,在百度中找了许久,先mark一下,以下代码就是我论文中用到的,以后应该还会用到,先保存在这里.结果图如下: impo ...

  3. 【Python】怎么用matplotlib画出漂亮的分析图表

    特征锦囊:怎么用matplotlib画出漂亮的分析图表 ???? Index 数据集引入 折线图 饼图 散点图 面积图 直方图 条形图 关于用matplotlib画图,先前的锦囊里有提及到,不过那些图 ...

  4. 用python画出简单笑脸画法_【Python】怎么用matplotlib画出漂亮的分析图表

    特征锦囊:怎么用matplotlib画出漂亮的分析图表 ? Index 数据集引入 折线图 饼图 散点图 面积图 直方图 条形图 关于用matplotlib画图,先前的锦囊里有提及到,不过那些图都是比 ...

  5. matplotlib 画双轴子图无法显示 x-轴 坐标轴标签

    主要问题 1.介绍 如题,画双轴子图不能显示 x-轴坐标轴标签,似乎 "双轴"与"子图"存在冲突有关,当前版本是 anaconda 3.7.4.比较奇葩的是 我 ...

  6. 用Python的turtle和matplotlib画出圆满和爱心

    马上就要到六一儿童节了,小朋友很喜欢画画,这里就用Pyhton来画一些简单形状. 首先是圆形,圆形的寓意是圆满.完美.团圆.优胜和团结.圆形在形状上是一个平面中点到定点距离相等的图形,象征着圆满和完美 ...

  7. 怎么用matlab画双8曲线,MATLAB画双纵轴曲线。

    Matlab plotyy画双纵坐标图实例 x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); ...

  8. matlab如何画双x坐标,matlab画双坐标图

    整理了一下matlab画双坐标的代码,具体如下.如果想分别设置双坐标的label,可以设置Ylim,YTick和YTickLabel. clc;clear; x=1:20; y1=100*ones(1 ...

  9. 【python 初学者】使用matplotlib画对比旋风图

    在做一些数据可视化时,两个类别数据可以做成对比图,这里使用的小技巧是生成一个固定数据用来放置标签,再将其中一个数据转换成负值,可使图形分成两部分. import matplotlib.pyplot a ...

最新文章

  1. 更改Jenkins升级站点
  2. CentOS7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8
  3. 调整weblogic内存的分配和使用
  4. 掌门教育微服务体系 Solar 第 3 弹:Nacos 企业级落地下篇
  5. navicat 8 mysql生成关系_MySQL数据库通过navicat建立多对多关系
  6. JMeter入门案例
  7. dpdk对虚拟化的支持调研
  8. ad域用户和计算机搭建,Windows Server 6分钟搭建AD域
  9. winexec函数 执行powershell 脚本_丢掉 Powershell.exe 来渗透测试
  10. Avalanche发布AvalancheGo v1.2.3版本
  11. C51单片机LCD1602驱动程序
  12. r语言跟python哪个适合数据分析_R语言 vs Python对比:数据分析哪家强?
  13. 康托尔集的物理意义1.2
  14. java file.io的各种使用
  15. Windows 10 下安装pycrypto时出错的解决问题
  16. 用halcon提取衣服徽章
  17. uniapp-微信小程序,对子组件实现onShow效果
  18. 深度学习中的归一化方法简介(BN、LN、IN、GN)
  19. 第四章 Docker镜像
  20. .sync修饰符的原理和使用

热门文章

  1. create-react-app创建的项目配置多入口MPA模式。报Cannot read property ‘filter’ of undefined
  2. 在几何画板中如何制作圆柱的侧面展开动画_如何用几何画板做三棱柱的侧面展开动画...
  3. 使用HTML及简单的JavaScript脚本制作一个点名器
  4. 【leetcode】714. 买卖股票的最佳时机含手续费
  5. 论文理解:“Designing and training of a dual CNN for image denoising“
  6. 磨金石教育||商业插画的发展现状如何?学习插画可以月入过万吗?
  7. Android Studio 编译时报文件不能删除,编译失败
  8. win32 20子窗口控件的代码
  9. R语言用quantstrat包获取股票、债券、基金、黄金、原油、指数、外汇和全球经济数据
  10. python爬虫之静态网页——全国空气质量指数(AQI)爬取