【问题标题】:Set continous color map in matplotlib for line chart [duplicate]在matplotlib中为折线图设置连续颜色图[重复]
【发布时间】:2019-05-04 17:32:14
【问题描述】:

我一直在尝试可视化保存在数组中的路径并沿线应用颜色渐变。

这是我目前所拥有的:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

arr = np.array([[24.99487317, 55.466666  ,  0.        ],
       [24.99487367, 55.46666917,  1.        ],
       [24.99487217, 55.46667017,  2.        ],
       [24.99487183, 55.4666715 ,  3.        ],
       [24.99487133, 55.466673  ,  4.        ],
       [24.99487267, 55.466674  ,  5.        ]])

fig, ax = plt.subplots()
ax.plot(arr[:, 0], arr[:, 1], c=cm.hot(arr[:, 2]), linestyle='dashed')
plt.show()

我希望对最近的点进行更高的评估(或者在“热”颜色图上更亮)。不知何故,我总是得到错误:

ValueError: Invalid RGBA argument: array([[0.0416, 0.    , 0.    , 1.    ],
       [1.    , 1.    , 1.    , 1.    ],
       [1.    , 1.    , 1.    , 1.    ],
       ...,
       [1.    , 1.    , 1.    , 1.    ],
       [1.    , 1.    , 1.    , 1.    ],
       [1.    , 1.    , 1.    , 1.    ]]) 

我在文档中找不到任何合适的示例,并且我不知道 cm.hot 的返回值必须具有哪种形状(我尝试了各种方法,或者使用 plt.scatter 和 cmap/norm 参数但相同错误)

我需要如何应用 cmap 来获得一条持续变亮的线以供以后观察?

【问题讨论】:

标签: python matplotlib


【解决方案1】:

尝试seaborn 与分散:

fig, ax = plt.subplots(1,1, figsize=(12,8))
ax.plot(arr[:,0], arr[:,1])
sns.scatterplot(arr[:, 0], arr[:, 1], 
                ax=ax, hue=arr[:,2], 
                palette=plt.cm.hot,
                legend=None)
plt.show()

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多