matplotlib 用发散着色创建线图

f3temu5u  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(105)

我试图创建一个具有发散色图的线图,我面临着一些挑战。
我的目标是生成一个折线图,使用发散的颜色Map表有效地可视化数据。然而,尽管我尽了最大的努力,我仍然在努力实现。
以下是我的尝试:
1.我已经导入了必要的库(例如,Matplotlib,Seaborn)。
1.我已经准备好线形图的数据了。
1.我已经建立了基本的线图结构。

在一个简单的方式解释,我有两列数据框,一个是日期(x轴),另一个是y轴值,我想创建一个线图,它应该看起来像下面的附图,根据值发散颜色。

但是我很难将一个发散的色图应用到情节上。我尝试了不同的方法,但是我没有得到我想要的结果。
如果你有在Python中创建具有发散色彩图的线图的经验,我将非常感谢你的见解和建议!
我希望输出图看起来像这个附图中的图形。
x1c 0d1x的数据

g9icjywg

g9icjywg1#

在matplotlib中,您不能使用标准绘图方法绘制折线,而是可以使用线段LineCollection

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
from matplotlib.colors import Normalize

x = np.linspace(0, 10, 100)
y = np.sin(x)

colors = np.array(y)

cmap = cm.get_cmap('RdBu')

norm = Normalize(min(y), max(y))

points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
lc = LineCollection(segments, cmap=cmap, norm=norm)
lc.set_array(colors)

# plot
fig, ax = plt.subplots()
ax.set_ylim(min(y), 1.05 * max(y))
ax.set_xlim(min(x), 1.05 * max(x))
ax.add_collection(lc)
plt.show()

字符串


的数据

相关问题