【发布时间】:2016-04-20 20:21:59
【问题描述】:
我想在同一轴上绘制一个包含多个数据集的折线图,因此标记会显示,但线不会显示。我真的看不出我做错了什么。请问有人可以另眼相看吗?
这是打印出来的数据:
looking at 2015-08-05 83.0 AA attribs sector= Materials shape= o kolor= b x = 2015-08-05 y = 83.0
looking at 2015-08-06 50.0 AA attribs sector= Materials shape= o kolor= b x = 2015-08-06 y = 50.0
looking at 2015-08-07 42.0 AA attribs sector= Materials shape= o kolor= b x = 2015-08-07 y = 42.0
looking at 2015-08-10 75.0 AA attribs sector= Materials shape= o kolor= b x = 2015-08-10 y = 75.0
这里是代码段:
for count, symb in enumerate(my_symbols):
sector = sector_format[str(sym_sect[symb])][0]
shape = sector_format[str(sym_sect[symb])][1]
kolor = sector_format[str(sym_sect[symb])][2]
x = my_dates[count]
y = rank_2010[count]
print("looking at",x,y,symb,"attribs",
"sector=",sector,
"shape=",shape,
"kolor=",kolor,
"x =",x,
"y = ",y)
if symb == 'AA' or symb == "AAPL":
plt.plot(x,y,lw=5,color=kolor,linestyle='solid',marker=shape)
plt.title('hv 20 to 10 ranks')
plt.xlabel('dates')
plt.ylabel('symbol ranks')
plt.show()
【问题讨论】:
-
如果我们可以获得非字符串格式的数据(例如,可能在可复制粘贴的列表中),那就容易多了。我认为正在发生的事情是您将每个点绘制为不同的线,然后手动将它们全部设置为相同的标记和形状。打开图例,您可能会在其中看到 4 组不同的数据。您要做的是将数据放入 2 个列表
x, y并将这些列表发送到for循环之外的plt.plot。 -
嘿,ljetibo,但数据集有点棘手。基本上我有 1000 天的 100 个符号的数据。我将这些天分成一个列表(my_dates[],它是 x 轴),另一个列表是排名数据(rank_2010[]),它是 y 轴。)现在是棘手的部分。每个 rank_2010 都有一个用于查找扇区的符号(在这种情况下,符号 = AA,即扇区“材料”)一个扇区有一组应用于一条线的属性,所以我想最终绘制所有 100 个符号使用他们相关的扇区格式,当我指向一条线时,我得到了符号。
标签: python matplotlib