我希望将观察值(散点图)绘制在模型输出(填充的等高线)之上。为了在等高线图中高亮显示感兴趣的区域,我使用levels参数指定了色阶中断。然而,当我在顶部绘制散点时,色标是不同的。有没有一种方法可以使散射色标与轮廓色标对齐? 在下面的示例中,我希望点颜色与背景颜色相匹配: import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,10).tolist()
y = np.arange(0,10).tolist()
z = np.ndarray((len(x),len(y)))
for i in range(0,10)
我正在使用matplotlib创建一个二维等高线图。使用提供的文档,可通过以下方式创建此类等值线图
import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate
我想做一个有3种不同颜色的等高线图。到目前为止,我的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
xMin = 0
xMax = 3
xList = np.linspace(xMin, xMax, 10)
X1, X2 = np.meshgrid(xList, xList)
Z = []
# do some processing with Z
# Z now contains 0, 0.5 or 1, e.g. Z = [0, 0, 0, 1, 1, 0.5, 1, 0.5...]
Z = Z.reshape((len(
我已经设法获得matplotlib来使用FuncAnimation更新等高线图,但是我无法获得颜色条来更新等高线级别。当我替换等高线时,颜色条没有变化。如果我用动画的每一帧创建彩色条,那么我会得到一整串的彩色条形图。
如何更新现有的色条?
下面是一个绘制椭圆函数随时间变化的例子。值的范围正在稳步缩小,所以我需要更新颜色条。
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
class ContourAnimation(object):
def __i
我正在用tricontourf绘制一些等高线。我希望颜色映射表在对数值、刻度标签和颜色边界中进行缩放,使其以对数为底2。以下是我的代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as tri
import matplotlib.ticker as ticker
import matplotlib.colors as colors
section = 'T7'
data = np.loadtxt( section + '_values.dat')
x =
我试着用滑块改变材质填充等高线图上的颜色等级的值。即等高线(x,y,z,np.linspace(a,b,n)),其中滑块将控制a和b,并在移动滑块时改变绘图颜色级别。下面的代码采用列格式的数据,将其转换为contourf所需的表单,然后实现滑块。这就是我尝试过的:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
data=np.genfromtxt('file.dat',skip_header=1)
len=np.sqrt(data[:,0].si
有时,特定的等高线级别具有多个组件。例如:
import numpy as np
import matplotlib.pyplot as plt
delta = 1./100
x = np.arange(-2.0, 3.0, delta)
y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z = Y * Y - X * X * X + X
plt.figure()
CS = plt.contour(X, Y, Z, [0])
如何使用组件自己的颜色对每个组件进行着色?
比方说,我有一个有一定数量情节的数字,类似于这个:
其中,单个情节的颜色由matplotlib自动决定。获得这一点的代码非常简单:
for i in range(len(some_list)):
x, y = some_function(dataset, some_list[i])
plt.plot(x, y)
现在假设所有这些线都依赖于第三个变量z,我希望包含这个信息,用一个颜色来绘制给定的线条,这个颜色提供了关于z的大小的信息,可能在图的右边使用一个颜色图和一个色条。你建议我怎么做?我不使用传奇,因为在我的数字,我有更多的线条,我正在显示。我能找到的所有信息都是关于
我有两个变量(x,y)的线条图序列,对应一个变量z的许多不同值。我通常会添加带有图例的线条图,如下所示:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
# suppose mydata is a list of tuples containing (xs, ys, z)
# where xs and ys are lists of x's and y's and z is a number.
legns = []
for(xs,ys,z) in mydata:
我不想为每一条绘制线指定颜色,而是让每一条线都有不同的颜色。但是如果我运行:
from matplotlib import pyplot as plt
for i in range(20):
plt.plot([0, 1], [i, i])
plt.show()
然后我得到这个输出:
如果你看上图,你可以看到matplotlib试图为每一行选择不同的颜色,但最终它重用了颜色-前十行与后十行使用相同的颜色。我只想阻止它重复已经使用过的颜色和/或给它提供一个要使用的颜色列表。
我有一个问题,与颜色条等高线与用户定义的水平。正如您在下图中所看到的,最高级别(红色)的颜色在色条中显示得不太好。为了解决这个问题,我想改变颜色条的范围(例如,从0到1),同时不改变颜色图的等高线级别或范围。
到目前为止,我已经尝试手动设置颜色条调用中的颜色条的刻度,但这并没有改变范围。(也就是说,0.3-0.8以外的滴答就不会出现)
最低工作实例:
import numpy as np
import matplotlib.pyplot as plt
z = np.random.rand(10,10)
im = plt.contour(z, levels = [0.3,0.5,0.8], c
假设我想绘制z=0 where z=(19*y^3-6*x*y-1)的等高线。我可以使用以下代码:
x = np.linspace(-2,2,1000)
y = np.linspace(-1,1,1000)
X,Y = np.meshgrid(x,y)
z = (19)*Y**3-6*X*Y-1
plt.figure()
plt.contour(z,0)
plt.show()
现在我想要显示曲线中3*19*y^2-6*x<0在实线中的部分,以及3*19*y^2-6*x>0在虚线中的部分。基本上,我是在做系统的某种稳定性分析,我想根据dz/dy是正的还是负的,以不同的方式显示z=0曲
我正在寻找一种方法,以一种对线的角度作出反应的方式,为matplotlib中的线条图分配颜色。这是我目前的代码:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
horz = [[0.5,0.6,0.8],[0.1,0.8,0.9],[0.2,0.5,0.9]]
vert = [[0.1,0.2,0.3],[0.05,0.1,0.15],[0.2,0.3,0.35]]
f = plt.figure(figsize=(6,6))
ax = plt.axes()
for column in range
我正在寻找一种方法来改变一个三维图形网格线的颜色,但没有找到一个干净和简单的方法来做到这一点。我找到的唯一答案是,结果有点复杂。我想知道是否有更简单的方法用matplotlib用mpl_toolkits.mplot3d来绘制三维图形的网格线。
找到的简单例子
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
mpl.rcParams['legend.fontsize'] = 10
fig = p
我必须使用matplotlib通过创建一个循环来绘制多行和多个标记,并且我已经在matplolibrc param文件中设置了轴的颜色周期。在循环的每个周期中,都会创建一组标记和线(线是由单独的命令创建的)。但标记和线条的颜色根据轴的颜色循环而不同。我希望每次循环运行时,标记和线条的颜色与该循环相同。
我已经包含了可重现的代码:
import numpy as np
import itertools
import matplotlib.pyplot as plt
m = 5
n = 5
x = np.zeros(shape=(m, n))
plt.figure(figsize=(5.15, 5
我正在尝试运行最小二乘算法来拟合我的数据中的一条线。
这段代码类似于我的问题;'z‘是一个50乘50的矩阵,例如,我想通过幂大于0.25的数据拟合一条线。(电源表示右侧的颜色条)
我在想,我怎样才能把最好的线穿过电源呢?在我的数据中,x轴是时间,y轴是频率,z是幂。而且,我的数据更均匀,所以0.25的幂几乎是线性的。
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage.filters import gaussian_filter
# Generate data for the plot
x = n
我想绘制一些数据的等高线图,但字段中的所有值都有可能是相同的值。这会在matplotlib中导致错误,这是有意义的,因为实际上没有要创建的轮廓。例如,如果您运行下面的代码,您将得到一个错误,但是删除zi的第二个定义,它就会按预期运行。
如果某些数据是一个统一的场,我如何为它绘制一个“等高线”图?我希望它看起来就像常规的等高线图(有一个框填充了一些颜色,并在侧面显示一个颜色条。颜色条可以是统一的颜色,或者仍然显示15种颜色的范围,我不在乎)。
代码:
from numpy import array
import matplotlib.pyplot as plt
xi = arra
我用matplotlib/pyplot绘制了一个简单的线条图。在同一个图中,最多有20条线。Matplotlib自动选择线条颜色。我需要用更粗的红色来画第一条线。
所以我试着:
if (i==0): # first line
plt.plot(x, y, 'r', lw=2.5)
else: # other lines
plt.plot(x, y)
到目前为止非常简单。第一行是正确的。但另一条线也是红色的。如何避免这种情况?
我对使用对数颜色缩放的等高线图有问题。我想手动指定级别。然而,Matplotlib以一种奇怪的方式绘制颜色条--标签没有放置好,并且只显示一种颜色。这个想法是基于
外面有没有人能帮我?我使用最新的git-repository matplotlib版本,v1.1.0 (2011-04-21)
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.mlab import bivariate_normal
from matplotlib.colors import LogNorm
from matplotlib.back
我已经绘制了一个等高线(和等高线,在顶部绘制线)图,用颜色条和等速数据级别绘制,这是可以的。但是,当我添加任意级别值(示例中的1.1)时,它在色条中的表示不正确。
在下面的可重复示例中,除了具有0.5步骤的级别之外,还添加了一个带有步骤0.1的新值。在颜色栏中,距离是相同的。
我该怎么纠正呢?
提前感谢
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-2.0, 3.0, 0.025)
y = np.arange(-2.0, 3.0, 0.025)
X, Y = np.meshgrid(x, y)
Z1 = n