python - matplotlib 中的 gnuplot linecolor 变量?

标签 python plot matplotlib gnuplot

我有一个 y 值数组,它们形成一条线。此外,我有一个数组,其元素数与值范围为 0 到 1 的 y 数组的元素数相同。我们将此数组称为“z”。我想绘制 y 值数组,以便每个点的颜色与 z 值相对应。

在 gnuplot 中,您可以使用“lc 变量”执行此操作:

plot ’data’ using 1:2:3 with points lc variable  

使用此处的建议:Matplotlib scatterplot; colour as a function of a third variable ,我能够使用散点图,它确实有效:

import matplotlib as mpl  
import matplotlib.pyplot as plt  

plt.scatter(x, y, c=z, s=1, edgecolors='none', cmap=mpl.cm.jet)  
plt.colorbar()  
plt.show()  

有没有办法用 matplotlib 中的 plot 方法来做到这一点,类似于这个?

plt.plot(x, y, c=z)

当我尝试上面的代码时,所有的行都显示为黑色。

最佳答案

我遇到了同样的问题:想要绘制颜色不均匀的线条,我希望它依赖于第三个变量 (z)。

但我绝对想使用一条线,而不是标记(如@joaquin 的回答)。 我在 matplotlib gallery example 中找到了解决方案,使用类 matplotlib.collections.LineCollection(链接 here)。

这是我的示例,它在 basemap 中绘制轨迹,并根据其高度为它们着色:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.collections import LineCollection
import numpy as np

m = Basemap(llcrnrlon=-42,llcrnrlat=0,urcrnrlon=5,urcrnrlat=50, resolution='h')
fig = plt.figure()
m.drawcoastlines()
m.drawcountries()

for i in trajectorias:
    # for each i, the x (longitude), y (latitude) and z (height)
    # are read from a file and stored as numpy arrays

    points = np.array([x, y]).T.reshape(-1, 1, 2)
    segments = np.concatenate([points[:-1], points[1:]], axis=1)

    lc = LineCollection(segments, cmap=plt.get_cmap('Spectral'),
                        norm=plt.Normalize(250, 1500))
    lc.set_array(z)
    lc.set_linewidth(2)

    plt.gca().add_collection(lc)

axcb = fig.colorbar(lc)
axcb.set_label('cota (m)')

plt.show()

height dependent trajectories

关于python - matplotlib 中的 gnuplot linecolor 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945699/

相关文章:

r - 在图中对齐图例表/矩阵中的文本和线条

python - 当 x 值之间发生单击时,在固定 x 值上绘制 h 线

python - Matplotlib x 轴日期刻度频率

python - 在 matplotlib python 中使用 ax.set_yscale ('log' )后定义最大和最小 yaxis 值

python - Python 的减量循环比增量循环运行得慢吗?

python - Python 中反转字符串和回文时间复杂度

python - 在嵌套列表中查找大量数据python

python - Django:如何更改内联表单集中的字段小部件

r - 改变图例ggplot2中的形状

r - 无法在 R 中下载 'digest' 包