gpt4 book ai didi

python - 对轮廓图中的一个级别使用不同的 cmap/颜色

转载 作者:行者123 更新时间:2023-12-01 01:39:07 24 4
gpt4 key购买 nike

我正在尝试使用一些 xyz 值绘制 matplotlib contourf 图。基本上,z 值将定义绘图的颜色。然而,我现在所在的一个区域(即对我来说重要的区域)与其他区域相比非常小(见图),因此实际上很难看到这个特定区域(一些小黑“点”) )。所以我在想是否有可能以另一种颜色获得第一个等级(或最后一个等级,因为在这种情况下它是负值),或者用细白线或其他东西勾勒出它的轮廓,这样人们就可以真正看到小的和重要的点?

我正在用这段代码进行绘图:

import matplotlib.pyplot as plt
from matplotlib import rcParams
import matplotlib.colors as colors
import numpy as np

nx = 41
ny = 67

x = np.linspace(0.01, 1, nx)
y = np.linspace(0.01, 2, ny)
x_bc = x[:, np.newaxis]
y_bc = y[np.newaxis, :]

z = x_bc*y_bc

max_value = np.amax(z)
cmapp = plt.get_cmap('Greys')

level_intervals = [100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 8, 1.92, 0]
level_list = [max_value-i for i in level_intervals]

col_bar = plt.contourf(x, y, z.T, level_list, cmap=cmapp)
plt.xlabel('x')
plt.ylabel('y')
plt.colorbar(col_bar, cmap=cmapp)

plt.show()

很抱歉没有提供任何真实数据,但我无法复制用于下面绘图的数据(其中实际上有一些少量/几乎黑色的点,在几乎黑色的内部(奇怪的句子)。但是,z 数据的大小和创建方式如上。但是在从图中获取数据之前,中间进行了很多计算。

enter image description here

最佳答案

根据下面的评论进行编辑:您可以将轮廓限制在您想要的区域/范围内。例如,我修改了上面示例代码中的 x、y 和 z 数据以绘制更多轮廓线。然后,我仅选择最高幅度的等高线 levels = Sorted(level_list)[-5:] (此处为最后 5 行),以红色突出显示。尝试对您的实际数据执行此操作,并查看感兴趣区域中的点是否可见。我只在下面写下我在您的代码中修改的行。

fig = plt.figure(figsize=(8, 6))
nx = 67
ny = 77

# Modified your actual values to get some more contour lines
x = np.linspace(1, 16, nx)
y = np.linspace(1, 15, ny)
z = x_bc*y_bc*0.2

col_bar = plt.contourf(x, y, z.T, level_list, cmap=cmapp)
plt.contour(col_bar, levels = sorted(level_list)[-5:], colors=('r',),linestyles=('-',),linewidths=(3,))

输出

enter image description here

关于python - 对轮廓图中的一个级别使用不同的 cmap/颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com