我使用matplotlib中的linecollection来创建类似于此示例的多色线:http://matplotlib.org/examples/pylab_examples/multicolored_line.html
但是我没有使用x和y两种浮点类型,我想知道是否可以创建一条x轴为字符串的行,可以说:x = ['a','b','c','d','e','f','g','h','j','k']
。因此,每个字符串都有一个值,例如y=np.arange(10)
。那么是否可以使用linecollection绘制连接那些xy点的多色线?
答案 0 :(得分:2)
好的,我设法做到了这一点,如果你需要,可以使用下面的代码。数据(gbpndupl)即时绘图是简单的系列,其中索引列是发布者名称,另一列是数字。我还上传了它的样子。
from matplotlib.collections import LineCollection
plt.figure(figsize=(15, 5))
x=np.arange(40)
y=gbpndupl.iloc[:40]
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
lc = LineCollection(segments, cmap='plasma',norm=plt.Normalize(0, 10))
#norm can be changed to decide how fast color changes
lc.set_linewidth(3)
lc.set_array(x)
plt.xlim(min(x), max(x))
plt.ylim(min(y), max(y))
plt.gca().add_collection(lc)
labels=list(gbpndupl.iloc[:40].index)
plt.xticks(x, labels, rotation='vertical');