gpt4 book ai didi

python - matplotlib 中带有 LineCollection 的水平线?

转载 作者:行者123 更新时间:2023-11-30 21:50:53 24 4
gpt4 key购买 nike

如何在 matplotlib 中使用 LineCollection 添加或创建水平线?我试图使动画更快,并且不想重复旧的内容,但基本上我试图避免在 for 循环中使用 axhline 来构造行数组。因此建议我尝试 LineCollection。但到目前为止我只能绘制一个系列。

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

x = [1,2,3,4,5,6,7,8,9]
y = [42,13,24,14,74,45,22,44,77]

lc = LineCollection(zip(x,y),color='blue')
fig,a = plt.subplots()
a.add_collection(lc)
a.set_xlim(0,10)
a.set_ylim(0,100)
plt.show()

如果我显式添加坐标,例如:

x = [(0,9),(0,9),(0,9),(0,9),(0,9),(0,9),(0,9),(0,9),(0,9)]
y = [(42,42),(13,13),(24,24),(14,14),(74,74),(45,45),(22,22),(44,44),(77,77)]

我得到以下情节? enter image description here

这怎么可能?

最佳答案

一个选项是这样的:

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


y = [42,13,24,14,74,45,22,44,77]
segs = np.zeros((len(y), 2, 2))
segs[:,:,1] = np.c_[y,y]
segs[:,1,0] = np.ones(len(y))


fig, ax = plt.subplots()
lc = LineCollection(segs,color='blue', transform=ax.get_yaxis_transform())
ax.add_collection(lc)
ax.set_xlim(0,10)
ax.set_ylim(0,100)
plt.show()

关于python - matplotlib 中带有 LineCollection 的水平线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60266750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com