Python绘制主次坐标图

王 茂南 2018年7月11日17:51:59
评论
2 1695字阅读5分39秒
摘要这一篇文章来讲一下主次坐标的绘制。也是最近在一次绘图中用到了,在这里记录一下方便之后自己的查找。顺便在这里说一下最近自己在做什么吧,也是好久没有更新了。

前言-说明

这一篇说一下绘制主次坐标的方式。这种图可以适用于当你有两组数组,两组数据的数量级相差较大(如果用同一个y轴进行绘制,数据较小的会看不出趋势),但是想要比较两组数据的趋势。这种时候使用主次坐标图是一个很好的选择。

主次坐标图绘制

在这里我就直接贴出代码,注释已经写好了,很容易能看懂。

  1. import numpy as np
  2. import pandas as pd
  3. from matplotlib import pyplot as plt
  4. from matplotlib.lines import Line2D
  5. import seaborn as sns
  6. %matplotlib inline
  7. # ----------
  8. # 生成样例数据
  9. # ----------
  10. x = np.linspace(0,10,15)
  11. y_data1 = np.random.rand(15)
  12. y_data2 = 5 * y_data1 + 5 * np.random.rand(15)
  13. # -------
  14. # 进行绘图
  15. # -------
  16. sns.set()
  17. # 画出双坐标轴图像
  18. fig, ax1 = plt.subplots(figsize=(9, 5),dpi=100)
  19. ax2 = ax1.twinx()
  20. # 这里获取图为了后面添加图例
  21. l1, = ax1.plot(x, y_data1, 'darkorange')
  22. l2, = ax2.plot(x, y_data2, 'royalblue')
  23. # 设置x,y轴文字说明
  24. ax1.set_xlabel('date')
  25. ax1.set_ylabel('Y1,drunken_conflict_rate')
  26. ax2.set_ylabel('Y2,drunken_conflict_hurt_rate')
  27. # 设置图例
  28. plt.legend(handles = [l1, l2,], labels = ['data_1', 'data_2'], loc='best')
  29. # 设置标题
  30. ax1.set_title('Primary and Secondary Coordinates')
  31. # -------
  32. # 绘制直线
  33. # -------
  34. # 两条line的数据
  35. line1 = [(2, 0), (2, 1)]
  36. line2 = [(7, 0), (7, 1)]
  37. (line1_xs, line1_ys) = zip(*line1)
  38. (line2_xs, line2_ys) = zip(*line2)
  39. # 创建两条线,并添加
  40. ax1.add_line(Line2D(line1_xs, line1_ys, linewidth=1, color='black'))
  41. ax1.add_line(Line2D(line2_xs, line2_ys, linewidth=1, color='black'))
  42. # 显示图像
  43. plt.show()
Python绘制主次坐标图

绘制出的图像如上所示,可以看到图的左右两边的y轴的刻度不一样,左边的范围是0-1,右边的范围是0-10.

主次坐标轴绘制图例

有的时候使用上面的方式是无法同时将主次坐标的图例画出来,这个时候可以使用下面的方式来进行绘制,也就是不要使用 plt.legend() 或是 ax.legend() 的方式绘制,而是直接使用 fig.legend() 来进行绘制:

  1. fig.legend(fontsize=17, bbox_to_anchor=(0.83, 0.87))

参考资料,Secondary axis with twinx(): how to add to legend?

上面就是主次坐标轴的一些画法,下面随便讲讲吧。

结语

上一次写随笔还是2018-06-07小记,已经过去一个月了。这一个月的时间我也从本科毕业了。虽说现在还在学校上暑期学校,但是感觉变化还是挺大的,身边的人又是换了一批吧,分别的时候真的感觉时间好快呀,四年本科就结束了,但是四年间发生的事情还历历在目。

自己一直还没有整理毕业那段时间拍的照片,之后肯定会整理一下发出来的。下面这段话是今天在网易云听歌的时候看到的评论。最近在学校里走路,总会想起和前女友在一起的点滴吧。

Python绘制主次坐标图

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2018年7月11日17:51:59
  • 转载请务必保留本文链接:https://mathpretty.com/9441.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: