【问题标题】:A logarithmic colorbar in matplotlib scatter plotmatplotlib 散点图中的对数颜色条
【发布时间】:2013-06-16 13:46:25
【问题描述】:

我想让散点图上的点的颜色与空隙率的值相对应,但在对数刻度上以放大差异。我这样做了,但是现在当我执行 plt.colorbar() 时,它会显示空隙率的日志,而我真的想要实际的空隙率。如何使用属于 [0.00001,1] 的空隙分数的适当标签在颜色条上制作对数刻度?

这是我现在拥有的绘图的图像,但是空隙率颜色条没有适当地标记为对应于真实的空隙率,而不是它的日志。

fig = plt.figure()
plt.scatter(x,y,edgecolors='none',s=marker_size,c=np.log(void_fraction))
plt.colorbar()
plt.title('Colorbar: void fraction')

感谢您的帮助。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    现在有一段文档描述了how color mapping and normalization works

    matplotlib 进行颜色映射的方式分两步,首先是一个Normalize 函数(由matplotlib.colors.Normalize 的子类封装),它将您提交的数据映射到[0, 1]。第二步将值映射到[0,1] -> RGBA空间。

    您只需要使用LogNorm 规范化类,通过norm kwarg 传入。

    plt.scatter(x,y,edgecolors='none',s=marker_size,c=void_fraction,
                    norm=matplotlib.colors.LogNorm())
    

    当您想要缩放/调整数据以进行绘图时,最好让matplotlib 进行转换,而不是自己进行。

    • Normalizedoc
    • LogNormdoc
    • matplotlib.colordoc

    【讨论】:

    • 结果如图2。pubs.rsc.org/en/content/articlehtml/2014/cp/c3cp55039g我在致谢中添加了Stack Overflow!
    • 谢谢!如果只有文档暗示在哪里看。有所有这些奇妙的功能和奇妙的参数提供了奇妙的可能性,但没有关于如何使用它们。
    • 请根据您现在的理解建议对文档进行修改
    猜你喜欢
    • 2014-09-10
    • 2011-08-29
    • 2011-07-26
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多