如何用matplotlib画多个独立窗口的图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matplotlib画多个独立窗口的图相关的知识,希望对你有一定的参考价值。

参考技术A 您好,很高兴能帮助您, plt.show() 好像只能这样,只有你关闭了才往下执行 你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”! 如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!

如何用matplotlib画多Y轴图

如图,我们想把每个例子的多个指标(Dice, HD, IOU)画在同一个图中,应该怎么操作呢

使用到的工具是: matplotlib (Version: 3.3.3)

from mpl_toolkits.axes_grid1 import host_subplot
from mpl_toolkits import axisartist
import matplotlib.pyplot as plt

host = host_subplot(111, axes_class=axisartist.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

par2.axis["right"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

p1, = host.plot([1, 2, 3,4,5,6,7,8,9,10],[82.85,82.69,82.89,83.52,82.48,82.93,82.78,82.99,82.81,83.51], 'o-', label="Dice")
p2, = par1.plot([1, 2, 3,4,5,6,7,8,9,10], [4.26,4.22,4.32,4.42,4.67,4.41,4.21,4.93,4.96,4.02], 'o-', label="HD95")
p3, = par2.plot([1, 2, 3,4,5,6,7,8,9,10], [83,80,85,82,82.48,82.93,82.78,82.99,79,83.51], 'o-', label="IOU")

host.set_xlim(0, 12)   # 坐标轴长度
host.set_ylim(82, 84)
par1.set_ylim(4, 5)
par2.set_ylim(77, 88)

host.set_xlabel("example")
host.set_ylabel("Dice Score (%)")
par1.set_ylabel("Hausdorff Distance (mm)")
par2.set_ylabel("IOU (%)")

host.legend()

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

plt.show()
plt.plot()

注意,版本不同可能略有差异,导致跑不通

代码关键解析:

  • p1,p2,p3 后面的逗号不能省略
  • p1,p2,p3 代表不同的指标
  • *.set_xlim 设置坐标轴的显示范围,范围要能大到足够包含所有值
  • 其余的就是一些美化设置

文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连

以上是关于如何用matplotlib画多个独立窗口的图的主要内容,如果未能解决你的问题,请参考以下文章

如何用matplotlib画多个独立窗口的图

数据可视化之如何用Matplotlib画好看的图

如何用python来画一个建筑的平面图,用matplotlib可行不?

如何用python画好confusion matrix

如何用Matlab快速画出带有3D渲染效果的复杂曲面

怎么用python绘图