【问题标题】:adding a subplot to a matplotlib graph向 matplotlib 图添加子图
【发布时间】:2012-03-04 05:53:17
【问题描述】:

我使用给定here 的 sn-p 作为脚本的起点。我想在第一个(即主)图表的底部显示一个成交量图表。体积子图基本上是绘制竖条。

理想情况下,日期(即 X 轴)标签将位于体积子图下方 - 即相同的日期 (X) 轴用于顶部(主)图表和子图。但是,如果它让生活更轻松(对于任何提交 sn-p 的人),我可以使用体积子图(有或没有自己的 X 轴日期标签)。

我发现 matplotlib 文档和零散的教程非常令人困惑。指向完成此类图形的示例的链接(或此处发布的 sn-p)将非常有用

【问题讨论】:

  • 我明白你想要的基本上是 this 有几个变化(主要是常见的 X 轴标签),不是吗?
  • @RicardoCárdenes:是的,你的理解是正确的。 “成交量”图表基本上是垂直条(看起来像您提供的链接中图片下方的图表)

标签: python matplotlib


【解决方案1】:

修改子图的ax声明为

ax = fig.add_subplot(211)

并注释掉minor_formatter声明 #ax.xaxis.set_minor_formatter(dayFormatter)

并在show() 调用之前附加以下内容

fig.subplots_adjust(hspace=0.5)
ay = fig.add_subplot(212)
ay.xaxis.set_major_locator(mondays)
ay.xaxis.set_minor_locator(alldays)
ay.xaxis.set_major_formatter(weekFormatter)
dates = [ x[0] for x in quotes]
volumes = [ x[-1] for x in quotes]
ay.bar(dates,volumes,0.35)

这给出了一个带有自己的 X 轴日期标签的体积子图表

【讨论】:

  • 这几乎可以工作,但我注意到两个“怪癖”:1)。它覆盖现有图表的底部。 2)。成交量图有两个莫名其妙的缺口——一个在成交量图表的开头,另一个在成交量图表的末尾,这似乎表明X轴缩放不同,因为成交量图表数据开始较晚(并且比顶部(主)图表中的图表更早完成
  • 更新了 sn-p 以在两个图中使用相同的 x 数据,这应该可以解决怪癖 2。我无法重现怪癖 1。因为 fig.subplots_adjust(hspace=0.5) 确保两者之间的垂直空间subplots 足以避免覆盖。
猜你喜欢
  • 2016-04-28
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2012-01-20
  • 1970-01-01
  • 2020-11-30
相关资源
最近更新 更多