我有一个数据框,包含几个具有不同&x-x标度的实验运行。对特定的建模行为进行归零,即
将这些组合成一个数据帧进行处理就像pd.concat
一样简单,但我的难点在于绘制结果。
ax=v.plot(
figsize=(10,13),kind='line',
secondary_y='average_rx_delay',
logy=True,
title="Performance Comparison of Varying Packet Period Rates \n(counts on left, seconds on right)"
)
#ax.set_xlabel('Packet Emmission rate (per second)')
ax.set_ylabel('Packet Count')
如您所见,数据框索引被用作'系列标题'你可以说,但它没有经过数字评估,导致线条不均匀和偏斜。
稍微容易看到为什么如果您按照标准进行绘制
我正在寻找的是下面的内容,但是作为一行。
懒散地生成了哪个
f, ax1 = plt.subplots()
ax1.scatter(list(v.index),
v.collisions, c='r')
ax1.scatter(list(v.index),
v.tx_counts, c='b')
ax1.scatter(list(v.index),
v.rx_counts, c='g')
ax1.scatter(list(v.index),
v.enqueued, c='y')
ax2=ax1.twinx()
ax2.scatter(list(v.index),
v.average_rx_delay, c='c')
基本上,我希望线图将v.index
作为x轴值,但坚持为实际数字!
我已尝试将x=v.index
添加到plot
来电,并将索引添加为另一列,并尝试以相同的方式使用新列,但已经过了没有快乐。
任何神奇的想法,还是我应该开始采用冗长不整洁的DIY方式?
更新
根据@ ajean的问题,这就是数据选择的样子。请注意,PER
是再次添加'上面提到的x=v.PER
尝试的索引列,但无论如何它都被主.plot
正确丢弃了。
答案 0 :(得分:1)
您的索引看起来像是一个分类输入。您可以尝试df.column_name = df.column_name.astype(float)。我的答案基于Converting strings to floats in a DataFrame。如果你想要线而不是点,那么你应该使用plot而不是scatter。