如何创建一个随时间显示开/关状态的绘图?[附图]

问题描述 投票:0回答:3

如何在绘图中显示某事物的开/关状态。 就像屏幕的图像附加状态一样,WiFi 等也会随时间显示。每个 ON 间隔都会显示一个矩形。

一种方法是使用layout-shape属性分别为每个间隔绘制矩形。 但在这种方法中,显示/隐藏任何一个参数的切换都表示通过单击图例来实现 WiFi 功能将不起作用。

有没有其他方法可以做到这一点或有任何图形对象可用于这种绘图?

enter image description here

plotly plotly-dash
3个回答
0
投票

尝试使用方形或矩形标记的基本散点图。

"data": [ {"type": "scatter", "marker": { "symbol": "square", "color": "#FF0000"}, ... }]

此处提供各种可用的标记类型:https://plot.ly/python/reference/#scatter-marker-symbol


0
投票

使用散点图并在每个 OFF 和 ON 实例之间插入 None 非常接近。

import plotly
import plotly.graph_objs as go
plotly.offline.init_notebook_mode(connected=True)

screen_time = ['2018-06-05 12:11:10','2018-06-05 12:12:50',None,'2018-06-05 12:13:05','2018-06-05 12:14:50',None,
       '2018-06-05 12:16:10','2018-06-05 12:16:56',None,'2018-06-05 12:17:05','2018-06-05 12:19:15']
screen_pos = [1,1,None]*4

wifi_time = ['2018-06-05 12:12:12','2018-06-05 12:12:50',None,'2018-06-05 12:13:12','2018-06-05 12:13:50',None,
       '2018-06-05 12:15:10','2018-06-05 12:17:16',None,'2018-06-05 12:17:55','2018-06-05 12:18:15']
wifi_pos = [1.5,1.5,None]*4


trace1 = go.Scatter(
    x = wifi_time,
    y = wifi_pos,
    name='WiFi',
    mode = 'lines',
    line=dict(
    width=10,
    ),
    connectgaps=False
)
trace2 = go.Scatter(
    x = screen_time,
    y = screen_pos,
    name='screen',
    mode = 'lines',
    line=dict(
    width=10,
    ),
    connectgaps=False
)

data = [trace1,trace2]

layout = go.Layout(             
        title="Device Status",     
        yaxis=dict(                 
            visible=False          
        ),
)
fig = dict(data=data, layout=layout)
# Plot and embed in ipython notebook!
plotly.offline.iplot(fig, filename='basic-scatter')

enter image description here


0
投票

仅供参考,Plotly 的 Ganntt 图表是一个很好的起始解决方案,请参阅 2 个示例 https://plotly.com/python/gantt/ https://python-charts.com/evolution/gantt-chart-plotly/

© www.soinside.com 2019 - 2024. All rights reserved.