- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在绘制一个从 MWA 生成的函数 z
,如下所示:
import numpy as np
import matplotlib.pyplot as plt
ylist = np.linspace(0,10,20)
xlist = np.linspace(0,10,20)
zR = [] # real part of z
zI = [] # imaginary part of z
for y in ylist:
for x in xlist:
z = 0.2*x**2 + 1j*(x*y+0.7*np.sqrt(y))
zR.append(z.real)
zI.append(z.imag)
zR = np.array(zR)
z_matrixR = zR.reshape((ylist.size, xlist.size))
zI = np.array(zI)
z_matrixI = zI.reshape((ylist.size, xlist.size))
fig = plt.figure(figsize=(8.0,6.0))
ax1 = fig.add_subplot(221)
z_contourR = ax1.contourf(xlist,ylist,z_matrixR,100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('real')
#cbarR = plt.colorbar(z_contourR)
ax2 = fig.add_subplot(222)
z_contourI = ax2.contourf(xlist,ylist,z_matrixI,100)
plt.xlabel('x')
plt.ylabel('y')
plt.title('imaginary')
#cbarI = plt.colorbar(z_contourI)
plt.tight_layout()
plt.show()
我希望我的 z
函数的实部和虚部共享相同的颜色条,但我不知道如何做到这一点。我看过this和 this例如,但我仍然不确定如何将其应用到我的代码中。
最佳答案
vmin
、vmax
和 levels
是您的 friend 。您可能需要 3 个选项:
绘制实部和虚部时使用相同的部分
fig = plt.figure(figsize=(8.0,6.0))
ax1 = fig.add_subplot(221)
vmax=30
vmin=0
levels = np.linspace(vmin,vmax,100)
z_contourR = ax1.contourf(xlist,ylist,z_matrixR,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('real')
cbarR = plt.colorbar(z_contourR)
ax2 = fig.add_subplot(222)
z_contourI = ax2.contourf(xlist,ylist,z_matrixI,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('imaginary')
cbarI = plt.colorbar(z_contourI)
plt.tight_layout()
plt.show()
右上角是白色的,因为它超出了我指定的levels
范围,您可以通过为levels
和vmax选择不同的最大值来恢复它
这会创建一个看起来很有趣的颜色条,但在某些情况下您可能需要它
fig = plt.figure(figsize=(8.0,6.0))
ax1 = fig.add_subplot(221)
vmax=30
levels_max=100
vmin=0
levels = np.arange(vmin,levels_max,.1)
z_contourR = ax1.contourf(xlist,ylist,z_matrixR,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('real')
cbarR = plt.colorbar(z_contourR)
ax2 = fig.add_subplot(222)
z_contourI = ax2.contourf(xlist,ylist,z_matrixI,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('imaginary')
cbarI = plt.colorbar(z_contourI)
plt.tight_layout()
plt.show()
现在,如果您希望右上角填充且颜色条看起来正确,您应该重新定义图形之间的级别
,并使用第一个颜色条绘制两者
fig = plt.figure(figsize=(8.0,6.0))
ax1 = fig.add_subplot(221)
vmax=30
levels_max=30
vmin=0
levels = np.linspace(vmin,levels_max,100)
z_contourR = ax1.contourf(xlist,ylist,z_matrixR,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('real')
cbarR = plt.colorbar(z_contourR)
vmax=30
levels_max=100
vmin=0
levels = np.linspace(vmin,levels_max,100)
ax2 = fig.add_subplot(222)
z_contourI = ax2.contourf(xlist,ylist,z_matrixI,levels=levels,vmax=vmax,vmin=vmin)
plt.xlabel('x')
plt.ylabel('y')
plt.title('imaginary')
cbarI = plt.colorbar(z_contourR)
plt.tight_layout()
plt.show()
关于Python相同的颜色条用于函数的实/虚等高线图的子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117569/
我试图理解 findContours 的输出基于 this one 等教程和文档。我想知道为什么我得到我得到的输出。我有一个中间有一个正方形的 jpeg img,我的目标是找到正方形并为其着色(只是为
我有一组数据,其中包含 x 和 y 坐标以及每个坐标的计算值。网格是不规则的,所以现在我一直在创建一个散点图并将值分成多个箱子,以显示为下面链接中 img 上的等高线。 http://i.stack.
这个问题在这里已经有了答案: Test if a numpy array is a member of a list of numpy arrays, and remove it from the
我有一个存储为栅格的高程图。我想将平滑的“vector ”曲线拟合到恒定高度的轮廓。在我的应用程序中,数据实际上是地理海拔,但问题可以推广到两个变量的任何函数。 如果有帮助,我可以生成另一个具有抗锯齿
我想生成一个带有颜色条的等高线图/热图,然后添加一个注释框。这个数字很丑,但得到了我想要的: add_subplot() 是不够的。如果我尝试将所有内容都放在同一个子图中,则该框会被遮盖。我可以通过使
我正在尝试使用属于 ROOT 的 Minuit2 最小化器为具有物理限制的参数生成等高线图数据分析框架。不幸的是,当我尝试生成等高线图时,Minuit2 似乎有意将参数漂移到超出其限制的区域: >>>
我的目标是这种效果:(仅水平轮廓线): 我确实找到了 this example ,但是它会创建水平 和 垂直轮廓线。我无法完全理解如何调用 fwidth()正在生成线条。 uniform float
大家好,我是编程新手,我正在尝试做一些可能非常明显的事情,但对于我来说,我无法弄明白。我有一系列 x、y、z 数据(在我的例子中,对应于距离、深度和 pH 值)。我想使用 matplotlib 在 x
我是一名优秀的程序员,十分优秀!