在情节图中标记特殊日子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在情节图中标记特殊日子相关的知识,希望对你有一定的参考价值。

我正在使用Plotly API从python中的数据集绘制折线图。例如,我有2018年的数据集。

2018

现在我想查看天气周末天需求较高的工作日。我的目标是在星期六和星期日标记图表中的线条。 Plotly是否提供了这样做的方法?如果没有,有没有简单的方法来实现这一目标?

答案

您可以制作标记图,然后覆盖线图以获得所需的输出,其中必须使用基于条件的颜色列表传递标记图。

要获得清晰的图片,请参阅以下代码,

# make a dummy time data

x_values = pd.date_range(start=pd.Timestamp('2018-01-01'), end=pd.Timestamp('2019-01-01'), freq='1 D')

# making a random time series
y_values = np.random.randn(len(x_values))

# making color list
# red if the day is saturday or sunday else green

colors = ['red' if int(pd.Timestamp(d).weekday()) >= 5 else 'green' for d in x_values]

# make the plot

trace_0 = go.Scatter(
    x=x_values,
    y=y_values,
    mode='markers',
    marker=dict(
        color = colors
    )
)

trace_1 = go.Scatter(
    x=x_values,
    y=y_values,
    mode='lines',
    marker=dict(
        color = 'black'
    )
)

layout = dict(
    title='Time Series with Rangeslider',
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label='1m',
                     step='month',
                     stepmode='backward'),
                dict(count=6,
                     label='6m',
                     step='month',
                     stepmode='backward'),
                dict(step='all')
            ])
        ),
        rangeslider=dict(
            visible = True
        ),
        type='date'
    )
)

fig = {
    'data': [trace_0, trace_1],
    'layout': layout,
}

py.iplot(fig, filename='Plot')

输出图

enter image description here

我还实现了一个范围滑块,如果不需要,可以从布局中编辑它。

以上是关于在情节图中标记特殊日子的主要内容,如果未能解决你的问题,请参考以下文章

情节图例掩盖了图中的情节线

如何在情节线图中有选择地隐藏图例?

如何在情节中摆脱 scatter_matrix 的所有子图中的网格线?

如何使用 plotly express 向折线图添加点或标记?

在情节子图中合并图例

为啥 Petri 网的可达性图中未定义最终标记的数量?