Joe*_*ont 6 matplotlib color-mapping
我正在尝试使用matplotlib的设施复制附图的样式.

基本上,我想使用matplotlib根据其y值更改曲线的颜色.
ask*_*han 12
您显示的图表没有通过图表的垂直轴设置的颜色(这是我认为的y值).相反,它只有8个不同的地块覆盖,每个都有不同的颜色,没有说明颜色的含义.
这是一个看起来像你的情节的例子:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
# some fake data:
x = np.linspace(0, 2*np.pi, 1000)
fs = np.arange(1, 5.)
ys = np.sin(x*fs[:, None])
for y, f in zip(ys, fs):
plt.plot(x, y, lw=3, c=cm.hot(f/5))
Run Code Online (Sandbox Code Playgroud)

如果你真的希望一条线的颜色相对于它的值发生变化,你必须要破解它,因为Line2D据我所知,任何给定的对象只能有一种颜色.一种方法是制作散点图,其中每个点可以有任何颜色.
x = np.linspace(0, 2*np.pi, 1000)
y = np.sin(2*x)
plt.scatter(x,y, c=cm.hot(np.abs(y)), edgecolor='none')
Run Code Online (Sandbox Code Playgroud)
笔记:
0和之间1,所以if y.max() > 1,然后用它标准化:c=cm.hot(y/y.max())并确保它都是正数.edgecolor='none'是因为默认情况下scatter标记有一个黑色轮廓,使它看起来不像一条统一的线条.
| 归档时间: |
|
| 查看次数: |
12357 次 |
| 最近记录: |