当前位置: 首页 > 知识库问答 >
问题:

在Plotly中将自定义标记添加到甘特图

符鸣
2023-03-14

我不熟悉plotly,我正在使用px创建甘特图。时间表。我的数据集中有三类数据,一类是具有开始和结束时间的普通任务,另一类是开始和结束时间相同的两种类型的任务。我希望普通任务是一个矩形(这是如何绘制的),其他两个任务有一个沙漏标记和一个三角形标记,而不是一条很细的线?

这是我的数据的样子:

data = [dict(Task=’’, start=’’, end=’’, shape=’<rect, hour, tri>’)]

样本数据:

df = [dict(Task="Job A", Start='2009-01-01', Finish='2009-01-01', shape='hourglass'),
      dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15', shape='rectangle'),
      dict(Task="Job C", Start='2009-05-30', Finish='2009-05-30', shape='triangle')]

代码:

fig = px.timeline(data, x_start="Start", x_end="Finish", y="Task")
fig.update_yaxes(autorange="reversed", ticklabelposition="outside left")
fig.update_layout(showlegend=False, height=2000, width=1255, margin_pad=10)
fig.show()

例子:

Excel中的样本图

我有什么办法可以做到这一点吗?

谢谢!

共有1个答案

田翔
2023-03-14

经过几个小时的搜索,我解决了这个问题。

数据分成三个部分,每个部分对应3种不同的形状,然后绘制并合并。

创建3个单独的绘图:

rect = px.timeline(rect, x_start="Start", x_end="Finish", y="Task", color="color")
dia = px.scatter(dia, x="Start", y="Task", color="color", symbol_sequence=['diamond'])
coll = px.scatter(coll, x="Start", y="Task", color="color", symbol_sequence=['hourglass'])

如果需要,更新单个绘图的轨迹:

rect.update_traces(marker=dict(line=dict(width=1, color='black')))
dia.update_traces(marker=dict(size=12, line=dict(width=2)))
coll.update_traces(marker=dict(size=12, line=dict(width=2)))

设置时间轴图的轴:

rect.update_xaxes(tickformat="%H:%M:%S.%L", tickmode='linear', dtick='120000')
rect.update_yaxes(autorange='reversed')
rect.update_layout(title=title, showlegend=False, height=2800, width=2000)

覆盖所有绘图:

new_fig = go.Figure(data=rect.data + dia.data + coll.data, layout=rect.layout)
new_fig.show()
 类似资料:
  • 我使用Dropwizard Metrics library记录我的应用程序中各种操作的时间,使用计时器和控制台报告器,并将计数、平均速率等记录到控制台fine。 我希望这些数字也可以在 /metricsservlet上使用,并且基于http://metrics.dropwizard.io/3.1.0/manual/servlets/我需要访问名为的Metric注册表。但是查看文档和代码,我看不到是

  • 我有一个插件,创建一个自定义的帖子类型,名为弹出。但它没有在编辑页面上添加特色图像元框。我可以进入插件并像这样添加它。 在插件更新之前,这是有效的。在我的主题中,我添加了以下内容: 但这不会将元框添加到自定义帖子类型。 问题:是否可以在我的插件之外,或者在我的函数中添加此功能。php文件,这样我就可以更新插件了? 编辑:最终使用了免费插件高级自定义字段,让med添加多张特色图片。http://ww

  • 问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理

  • 所以我想在我的android应用程序中添加自定义视图标记,我从API请求中获取坐标,我想在各自的标记上显示位置的徽标。我正在从同一个API请求获取标记的URL。此外,我希望所有标记都是单个符号层的一部分,因为我也想对这些标记进行聚类。图片来源:谷歌图片搜索。

  • 我对mapbox/传单还不熟悉,我认为这是一个相当基本的问题,我在过去两天里一直在努力解决,尽管我已经尝试了几种方法,但我还是无法完全理解。 我正在通过geojson加载标记: 然后尝试根据Geojson数据中使用的标题更改大小或颜色等属性: geojson如下所示: 我错过了什么吗,因为我也试图通过使用 setIcon函数中的某个地方,但似乎没有工作。如果有人能给我指出正确的方向。这真的很合适。

  • 帮助我正试图用plotly绘制甘特图,但我没有找到一种方法。甘特图类似于水平条形图,每个条形图都有一个“起点”坐标。所以它看起来像: 我找不到让条形图中的“条形图”从特定的X坐标开始的方法。有什么提示/技巧/提示吗?