【问题标题】:Sharing contour plot attributes between subplots在子图之间共享等高线图属性
【发布时间】:2010-12-11 01:40:51
【问题描述】:

我正在并排绘制几个等高线图,以可视化某些函数的时间演变。我希望每个轮廓的值和颜色在所有子图之间共享,但是每次我添加一个新的子图时,都会重新计算轮廓值(如下图所示),因此它们之间的任何比较都是没有意义的。

Contour plots with colorbars http://www.inf.utfsm.cl/~rbonvall/colorbar-and-contour-plots.png

我尝试在每个子图实例上手动设置 cmapcolorbaraxes 属性的不同组合,但没有成功。如何在所有子图之间共享等高线图属性?换句话说,如何为所有子图获得相同的颜色条?

【问题讨论】:

    标签: plot matplotlib


    【解决方案1】:

    您可以直接指定要在等高线图中使用的等高线值。这是一个例子:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.arange(-1.2, 1.2, .025)
    y = np.arange(-1.2, 1.2, .025)
    X, Y = np.meshgrid(x, y)
    Z = np.cos(X)*np.cos(Y)
    Z = Z*Z
    
    plt.subplot(1,2,1)
    CS = plt.contour(X, Y, Z)   # set levels automatically
    plt.clabel(CS, inline=1, fontsize=10)
    plt.subplot(1,2,2)
    CS = plt.contour(X, Y, Z-.1, CS.levels)  # set levels as previous levels
    plt.clabel(CS, inline=1, fontsize=10)
    plt.show()
    

    【讨论】:

    • 谢谢汤姆,这是一种明智的方法,但我宁愿自动计算这些值,因为我将绘制几个具有不同值范围的不同函数。如果没有进一步的响应,我将使用此解决方案并通过查找所有数组中的最小值和最大值来自己计算值。
    • 谢谢!我忽略了levels 属性。现在它可以工作了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多