【问题标题】:Matplotlib: impose personalized colorbarMatplotlib:强加个性化的颜色条
【发布时间】:2017-02-06 15:35:40
【问题描述】:

背景故事:

我正在制作两个地块。一个图是带有彩色图的标准散点图。另一个图包含多个直方图,每个直方图都有不同的颜色,映射到前一个图的颜色图。我现在想在这个新图中显示上一个图的颜色图。这是一段sn-p代码:

#plot 1
f1, ax1 = plt.subplots()
sc = ax1.scatter(x, y, c=z)
cb = f1.colorbar(sc)
f1.show()

#plot 2
f2, ax2 = plt.subplots()
h1 = ax2.hist(x1, color=cb.to_rgba(val1))
h2 = ax2.hist(x2, color=cb.to_rgba(val2))
h3 = ax2.hist(x3, color=cb.to_rgba(val3))

现在我想将 cb(来自 f1 情节)添加到这个新情节中。 f2.set_colorbar(cb) 之类的东西不存在。

问题

给定一个使用f2, ax2 = plt.subplots() 生成的图并给定一个颜色条,我如何强制 matplotlib 在该图中插入给定的颜色条?请注意,颜色条不需要与绘图内的数据相关

【问题讨论】:

  • 为什么cb2 = f2.colorbar(sc) 不是一个选项?
  • 我试过了,效果很好!我没有尝试过,因为我不认为我可以将f1 的图传递给图形f2 的函数。谢谢。如果你愿意,你可以发布作为答案。
  • 有时您可以通过尝试和犯错来了解更多信息。虽然原则上你是正确的,你不能同时在两个数字中拥有相同的艺术家,但在这里你没有将散点图本身放在新轴上,而是f2.colorbar(sc) 将创建一个新轴,它有自己的艺术家基于属性散点图。
  • 感谢先生的人生课程

标签: matplotlib


【解决方案1】:

您可以简单地根据第一个图的散点图的PathCollection 为第二个图添加另一个颜色条。

f1, ax1 = plt.subplots()
sc = ax1.scatter(x, y, c=z)
cb = f1.colorbar(sc)
f1.show()

#plot 2
f2, ax2 = plt.subplots()
cb2 = f2.colorbar(sc)

【讨论】:

    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多