python - 第三个变量的颜色线 - Python

标签 python matplotlib plot

我有以下数据集: 在[55]中:usdbrl 输出[56]: 日期价格开盘高低变化 STD 0 2016-03-18 3.6128 3.6241 3.6731 3.6051 -0.31 0.069592 1 2016-03-17 3.6241 3.7410 3.7449 3.6020 -3.16 0.069041 2 2016-03-16 3.7422 3.7643 3.8533 3.7302 -0.62 0.068772 3 2016-03-15 3.7656 3.6610 3.7814 3.6528 2.83 0.071474 4 2016-03-14 3.6618 3.5813 3.6631 3.5755 2.23 0.070348 5 2016-03-11 3.5820 3.6204 3.6692 3.5716 -1.09 0.076458 6 2016-03-10 3.6215 3.6835 3.7102 3.6071 -1.72 0.062977 7 2016-03-09 3.6849 3.7543 3.7572 3.6790 -1.88 0.041329 8 2016-03-08 3.7556 3.7826 3.8037 3.7315 -0.72 0.013700 9 2016-03-07 3.7830 3.7573 3.7981 3.7338 0.63 0.000000

我想根据日期绘制价格: enter image description here

但我想用第三个变量(在我的例子中是日期或更改)为线条着色。

有人可以帮忙吗?

谢谢。

最佳答案

我写了一个简单的函数来将给定的属性映射到颜色:

import matplotlib.cm as cm
import matplotlib.pyplot as plt

def plot_colourline(x,y,c):
    col = cm.jet((c-np.min(c))/(np.max(c)-np.min(c)))
    ax = plt.gca()
    for i in np.arange(len(x)-1):
        ax.plot([x[i],x[i+1]], [y[i],y[i+1]], c=col[i])
    im = ax.scatter(x, y, c=c, s=0, cmap=cm.jet)
    return im

此函数标准化所需的属性并从 jet 颜色图中获取颜色。函数返回的 PathCollection 还将启用绘制颜色条。您可能想使用不同的。然后,获取当前轴并用不同颜色绘制数据的不同部分。因为我正在做一个 for 循环,你应该避免将它用于非常大的数据集,但是,对于正常用途它是有用的。

将以下示例作为测试:

import numpy as np
import matplotlib.pyplot as plt

n = 100
x = 1.*np.arange(n)
y = np.random.rand(n)
prop = x**2

fig = plt.figure(1, figsize=(5,5))
ax  = fig.add_subplot(111)
im = plot_colourline(x,y,prop)
fig.colorbar(im)

enter image description here

关于python - 第三个变量的颜色线 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505587/

相关文章:

python - 如何在 Django 中构建电子商务购物车?

python - 绘制到plot_surface - 无法正确地将数据转换为所需的格式

python - 无法使用 Python 2.7 重新编译 mod_wsgi

python - Pandas .str.replace 不替换表中的所有实例

python - MemoryError 与 numpy arange

plot - gnuplot:绘制数据并使用重复 x 值的最大值

python - matplotlib 对数 y 轴条形图

python - 如何在 Python 中设置直方图的 y 轴?

javascript - Azure 存储 SAS token 在本地主机上工作,但部署在 Azure Kubernetes 上时不起作用

python - matplotlib 中 plt.draw() 和 plt.show() 的区别