在多个图表上绘制一条线
我不知道这个东西怎么称呼,甚至不知道如何描述它,所以标题可能有点误导。
第一个附图是用 pyplot 创建的。我想画一条穿过所有图表的直线,而不是我目前使用的三个红点。在 pyplot 中可以吗?第二张图片是我正在寻找的。
I don't know how this thing is called, or even how to describe it, so the title may be a little bit misleading.
The first attached graph was created with pyplot. I would like to draw a straight line that goes through all graphs instead of the three red dot I currently use. Is it possible in pyplot? Second image is what I am looking for.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以通过关闭相关线条的剪辑来实现此目的。可能有一种更干净的方法来做到这一点 - 您可能可以直接在主框架上绘制线条 - 但以下方法对我有用:
通过更多的工作,您可以修改线条绘制以处理多个子图的一般情况windows,但我非常懒。 :^)
You can pull this off by turning clipping off for the relevant lines. There's probably a cleaner way to do this -- you might be able to draw lines on the main frame directly -- but the following worked for me:
With a bit more work you could modify the line drawing to handle the general case of multiple subplot windows, but I'm profoundly lazy. :^)
相关文档:
http://matplotlib.sourceforge.net/api/pyplot_api.html# matplotlib.pyplot.axvline
编辑:自 @DSM的答案比我的好得多,我羞愧地结合了一些这个答案是为了让我的答案不那么糟糕。
我试图处理一列中多个子图的一般情况(即不是多个子图的更一般情况,例如在网格中)。
感谢@DSM 的回答和@Artium 的提问。
Relevant documentation:
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axvline
Edit: since @DSM's answer was so much better than mine I have shamefully incorporated some of that answer in an attempt to make my answer less poor.
I've tried to handle the somewhat-general case of multiple subplots in a column (i.e. not the even-more-general case of multiple subplots, e.g. in a grid).
Thanks, @DSM, for your answer and @Artium for the question.
[更新 03/2013] 在 matplotlib 的较新版本中,有 ConnectionPatch 极大地简化了此任务。当需要覆盖两个以上的子图时,它特别有用。
[Update 03/2013] In newer revisions of matplotlib, there's ConnectionPatch that greatly simplifies this task. It's particularly useful whenever there are more than two subplots that need to be covered.
我会尝试
axvline(x, y1, y2)
(链接),但我认为 pyplot 中的任何选项都不会绘制跨越多个子图/图表的内容。如果是这样的话,我会尝试在图中的每个点绘制相同的垂直线,希望向观看者传达相同的意图。
I would try
axvline(x, y1, y2)
(link), but I don't think any of the options in pyplot will draw something that spans across several subplots/graphs.If that's the case, I would just try drawing the same vertical line at each point in the graph, hoping that the same intent is conveyed to the viewer.