gpt4 book ai didi

python - 如何在极坐标图中正确显示颜色条(半圆的等高线图)?

转载 作者:行者123 更新时间:2023-11-30 21:53:57 26 4
gpt4 key购买 nike

我正在使用 matplotlib 中的 Pyplot 在极坐标图中绘制一个大的温度矩阵(对于圆的每个 r 和 theta)。到目前为止,一切都与我所做的一切正常:

space_theta = radians(linspace(0, 180, M))
space_r = arange(0, a, delta_r)

r, theta = meshgrid(space_theta, space_r)

fig, axes = plt.subplots(subplot_kw=dict(projection='polar'))
axes.contourf(r, theta, T[W-1]) #T[W-1] is the temperatures I want to plot (T is a 3D matrix, so T[W-1] is a matrix)

axes.set_thetamin(0)
axes.set_thetamax(180)

plt.show()

有了这个,我得到以下信息:

enter image description here

现在我唯一想要的就是添加一个颜色图例,指示哪种颜色对应于哪种温度。它应该看起来像这样(只关注图例):

enter image description here

我在几个网站上进行了搜索,但没有找到如何执行此操作的方法。每次绘制图表所用的方法都不同。我尝试使用 colorbar(),它为每个人解决了问题,但我收到了一个错误(“未找到可用于创建颜色条的映射”)。

P.S.:如果可能的话,我想在颜色图例上显示最大值和最小值。

最佳答案

您可以使用 plt.colorbar 并将 axes.contourf 的结果作为第一个参数。您会注意到默认的颜色条太大了。要缩小它,请使用shr​​ink=.6使其类似于等值线图。现在,你会发现它太接近情节了。可以使用 pad=0.08 进行调整。

请注意,numpy 库有许多与其他库名称相似的函数。为了明确您正在使用 numpy 函数,最好将 numpy 导入为 np

这是一个更完整的示例:

from matplotlib import pyplot as plt
import numpy as np

M = 100
a = 1
delta_r = 0.01
space_theta = np.radians(np.linspace(0, 180, M))
space_r = np.arange(0, a, delta_r)
T = np.random.uniform(-30, 40, M * len(space_r)).reshape((M, len(space_r)))

r, theta = np.meshgrid(space_theta, space_r)

fig, axes = plt.subplots(subplot_kw=dict(projection='polar'))
contourplot = axes.contourf(r, theta, T)
axes.set_thetamin(0)
axes.set_thetamax(180)
plt.colorbar(contourplot, shrink=.6, pad=0.08)

plt.show()

example plot

关于python - 如何在极坐标图中正确显示颜色条(半圆的等高线图)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481048/

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