爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12065|回复: 3

[经验总结] 利用python制作多Y轴图表

[复制链接]

新浪微博达人勋

发表于 2017-3-9 16:47:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 WYC910220 于 2017-3-9 16:51 编辑

有些元素的分析往往是多因素的,在制作表格的时候,会存在多因素并行分析的情况,这时需要我们绘制多Y轴图表。最近用python试了一下,比较简单,记录一下。根据matplotlib 样例进行修改。由于初学,做的比较简陋,欢迎交流。
  1. # -*- coding: utf-8 -*-
  2. from mpl_toolkits.axes_grid1 import host_subplot
  3. import mpl_toolkits.axisartist as AA
  4. import matplotlib.pyplot as plt
  5. import xlrd

  6. #从excel中读取数据
  7. data = xlrd.open_workbook('picture.xlsx')
  8. a=[]
  9. b=[]
  10. c=[]
  11. d=[]
  12. e=[]
  13. f=[]
  14. table = data.sheets()[0]          #通过索引顺序获取
  15. table = data.sheet_by_index(0) #通过索引顺序获取
  16. table = data.sheet_by_name(u'Sheet5')#通过名称获得excel数据

  17. a=table.col_values(0)
  18. b=table.col_values(1)
  19. c=table.col_values(2)
  20. d=table.col_values(3)
  21. e=table.col_values(4)
  22. f=table.col_values(5)
  23. #print(a,b,c,d,e,f)

  24. host = host_subplot(111, axes_class=AA.Axes)
  25. plt.subplots_adjust(right=0.75)

  26. par1 = host.twinx()
  27. par2 = host.twinx()
  28. par3 = host.twinx()

  29. #设置坐标轴摆放位置和距离
  30. offset = 60
  31. new_fixed_axis = par2.get_grid_helper().new_fixed_axis
  32. par2.axis["right"] = new_fixed_axis(loc="right",axes=par2,offset=(offset, 0))
  33. par2.axis["right"].toggle(all=True)

  34. offset = 120
  35. new_fixed_axis = par3.get_grid_helper().new_fixed_axis
  36. par3.axis["right"] = new_fixed_axis(loc="right",axes=par3, offset=(offset, 0))
  37. par3.axis["right"].toggle(all=True)

  38. host.set_xlim(0,48)
  39. host.set_ylim(80, 240)

  40. host.set_xlabel("Time")
  41. host.set_ylabel("zhang san")
  42. par1.set_ylabel("li si")
  43. par2.set_ylabel("wang wu")
  44. par3.set_ylabel("zhao liu")

  45. #图例
  46. p1= host.plot(c,d,"ro-",label="zs")
  47. p2= par1.plot(a,b,"k^-",label="ls")
  48. p3= par2.plot(c,e,"bs-",label="ww")
  49. p4= par3.plot(c,f,"gx-",label="zl")

  50. #范围
  51. par1.set_ylim(90, 150)
  52. par2.set_ylim(100, 160)
  53. par3.set_ylim(1, 5)

  54. host.legend(loc="upper left")

  55. #host.axis["left"].label.set_color(p1.get_color())
  56. #par1.axis["right"].label.set_color(p2.get_color())
  57. #par2.axis["right"].label.set_color(p3.get_color())

  58. plt.draw()
  59. plt.show()
复制代码



                                                                                                                                 2017年3月9日 于华师大







Python绘制多Y轴图表

Python绘制多Y轴图表
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-5-31 11:56:54 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-10-5 20:00:44 | 显示全部楼层
请问你是在华师大读研的同学吗 有没有华师大的考研真题可以分享一下呀 十分感谢!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-30 13:18:21 | 显示全部楼层
不错多Y轴
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表