Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在极坐标图(半圆等高线图)中正确显示颜色条?_Python_Matplotlib_Graph - Fatal编程技术网

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

Python 如何在极坐标图(半圆等高线图)中正确显示颜色条?,python,matplotlib,graph,Python,Matplotlib,Graph,我正在用matplotlib中的Pyplot在极坐标图中绘制一个大的温度矩阵(对于一个圆的每个r和θ)。到目前为止,我所做的一切都很顺利: 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'))

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

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()
有了这些,我得到了以下结果:

现在我只想添加一个颜色图例,指示哪个颜色对应哪个温度。它应该是这样的(只关注图例):

我在几个网站上搜索过,但没有找到如何做到这一点。每次用于绘制图形的方法都不同。我尝试使用colorbar(),这为每个人解决了问题,但我得到了一个错误(“没有找到可用于创建colorbar的映射”)


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

您可以使用
plt.colorbar
,并将
axes.contourf
的结果作为第一个参数。 您会注意到默认的颜色栏太大了。要
收缩
它,请使用
收缩=.6
使其与轮廓图相似。现在,您会注意到它将太接近绘图。这可以通过
pad=0.08
进行调整

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

下面是一个更完整的示例:

从matplotlib导入pyplot作为plt
将numpy作为np导入
M=100
a=1
δr=0.01
空间θ=np弧度(np.linspace(0,180,M))
空间=np.arange(0,a,delta)
T=np.随机.均匀(-30,40,M*len(space_r)).重塑((M,len(space_r)))
r、 θ=np.meshgrid(空间θ,空间r)
图,轴=plt.子批次(子批次_kw=dict(投影=极坐标))
轮廓图=轴。轮廓f(r,θ,T)
轴。设置为(0)
轴。设置最大值(180)
plt.colorbar(轮廓图,收缩=0.6,衬垫=0.08)
plt.show()

您可以使用
plt.colorbar
,并将
axes.contourf
的结果作为第一个参数。 您会注意到默认的颜色栏太大了。要
收缩
它,请使用
收缩=.6
使其与轮廓图相似。现在,您会注意到它将太接近绘图。这可以通过
pad=0.08
进行调整

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

下面是一个更完整的示例:

从matplotlib导入pyplot作为plt
将numpy作为np导入
M=100
a=1
δr=0.01
空间θ=np弧度(np.linspace(0,180,M))
空间=np.arange(0,a,delta)
T=np.随机.均匀(-30,40,M*len(space_r)).重塑((M,len(space_r)))
r、 θ=np.meshgrid(空间θ,空间r)
图,轴=plt.子批次(子批次_kw=dict(投影=极坐标))
轮廓图=轴。轮廓f(r,θ,T)
轴。设置为(0)
轴。设置最大值(180)
plt.colorbar(轮廓图,收缩=0.6,衬垫=0.08)
plt.show()

来自图库。您应该始终在示例中显示导入内容,以便我们知道
弧度
排列
是什么。您还应该包括您尝试使用
.colorbar()
。谢谢!我在理解matplotlib的不同功能是如何工作的方面遇到了一些困难,但现在看来它可以工作了。只是需要调整一下尺寸,但我会没事的。从图库中。您应该始终在示例中显示导入内容,以便我们知道
弧度
排列
是什么。您还应该包括您尝试使用
.colorbar()
。谢谢!我在理解matplotlib的不同功能是如何工作的方面遇到了一些困难,但现在看来它可以工作了。只是需要调整一下尺寸,但我会没事的。