如何使部分情节变成虚线

时间:2019-01-24 09:55:33

标签: python pandas matplotlib

假设我们有以下数据框。

$(".icon").addClass("active");

现在我想绘制这个,我曾经使用过

d = {'quarter':['2018-1', '2018-2', '2018-3', '2018-4', '2019-1'], 'number':[131, 157, 136, 155, 263]}
df = pd.DataFrame(data=d)

现在问题是,我希望从x = 2018-4到x = 2019-1的线被点缀,因为这是一个预测。

我的问题 我怎样才能使部分情节变成虚线?

2 个答案:

答案 0 :(得分:1)

通过两次调用图分别绘制它们;只需切片您的数组

plt.plot(x[:2018-4] + x[2019-1:], y[:2018-4] + y[2019-1:])
plt.plot(x[2018-4:2019-1], y[2018-4:2019-1])

还有一个关键字参数,以确保它们都具有相同的颜色; iirc例如color=蓝色`

答案 1 :(得分:1)

唯一要做的是不绘制Line2D美术师(如果可能的话)的方法是绘制两条不同的线:

ax = plt.gca()
df.iloc[:-1].plot(ax=ax, label='Data', color='C0')
df.iloc[-2:].plot(ax=ax, label='Data', color='C0', ls=':')
plt.xticks(df.index, df['quarter'].values)
ax.legend(['Data', 'Prediction'])

为了简化数据处理,我建议您进行一些更改:

  • 使时间戳记超出四分之一数据
  • 为数据和预测单独创建一列,将每列中所有不可用的值设置为np.nan