【问题标题】:How can I extend the color range in a colormap plot? [duplicate]如何扩展颜色映射图中的颜色范围? [复制]
【发布时间】:2020-04-19 22:04:40
【问题描述】:

这是我的例子:

import numpy as np
import matplotlib.pyplot as plt
a1 = np.random.randn(10000)
b1 = np.random.randn(10000)
a2 = np.random.randn(5000)
b2 = np.random.randn(5000)
fig, axs = plt.subplots(1, 2, figsize=(9, 4))
ax = axs[0]
m = ax.hist2d(a1, b1, bins=30)
fig.colorbar(m[3], ax=ax)
ax = axs[1]
m = ax.hist2d(a2, b2, bins=30)
fig.colorbar(m[3], ax=ax)
plt.tight_layout()

输出图是这样的:

我的问题是如何更改右图的颜色范围,使其最大颜色值为 115 而不是 66 ?(注意:不只是改变colorbar的值,相同颜色值的颜色应与左图相同。)

我尝试像这样设置 cmax 关键字:

m = ax.hist2d(a2, b2, bins=30, cmax=115)

但结果没有变化。那我该怎么办呢?

【问题讨论】:

  • 对两个 2d 直方图使用 ax.hist2d(..., vmin=0, vmax=115) 以使它们具有相同的颜色范围。请注意,cmax 是一个截止点:所有高于 cmax 的值都将不可见(所有低于 cmin 的值也是如此)。
  • @JohanC 非常感谢!
  • 我不知道你为什么在这里得到了反对票。这对我来说似乎是个好问题。
  • @tom10 可能是因为vminvmax这些参数是一些基本的关键字参数。但这没关系。我现在已经理解他们了。感谢您的所有投票和回答

标签: python matplotlib colors


【解决方案1】:

您想显式添加 vmin 和 vmax 范围以获得所需的结果。 回答你的问题 -

import numpy as np
import matplotlib.pyplot as plt
a1 = np.random.randn(10000)
b1 = np.random.randn(10000)
a2 = np.random.randn(5000)
b2 = np.random.randn(5000)
fig, axs = plt.subplots(1, 2, figsize=(9, 4))
ax = axs[0]
m = ax.hist2d(a1, b1, bins=30)
fig.colorbar(m[3], ax=ax)
ax = axs[1]
m = ax.hist2d(a2, b2, bins=30, vmax = 115) # Added Vmax here.
fig.colorbar(m[3], ax=ax)
plt.tight_layout()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 2018-11-02
    • 2020-01-25
    • 1970-01-01
    • 2019-11-26
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多