【问题标题】:Dash Radial Plot for Hours of a Day一天中几个小时的破折号径向图
【发布时间】:2022-11-22 01:30:48
【问题描述】:

我正在 Plotly/Dash 中寻找类似于下面的径向图表的图。我在 Plotly 中找到的最接近的是极坐标图和折线图。

这是我的实现:

import random
import pandas as pd
import numpy as np
import plotly.express as px

df = pd.DataFrame({'DATE_TIME':pd.date_range('2022-11-01', '2022-11-05 23:00:00',freq='h'),
                   'value':[random.uniform(110, 160) for n in range(120)]})

fig = px.line_polar(df, r='DATE_TIME', theta='value', line_close=True)
fig.show()

我的输出看起来像:

我想绘制 0、3、6、9、12、15 等小时,而不是角度。 此外,我的线不是圆形的。我将不胜感激任何提示或解决方案。

【问题讨论】:

  • 你的点是分散的,线连接这些点,因此你得到了这个形状。
  • 另外,我不清楚你想在径向轴(r)和角度轴(theta)上绘制什么
  • @Hamzah 我想在径向轴上绘制值列。在 theta 上,我想显示小时数。
  • @Hamzah 我应该换成不同的形状吗?
  • 我更新了答案。

标签: python plotly plotly-dash


【解决方案1】:

将您的每小时数据转换为字符串系列并为您的数据添加颜色,如下所示:

import random
import pandas as pd
import numpy as np
import plotly.express as px

df = pd.DataFrame({'DATE_TIME':pd.date_range('2022-11-01', '2022-11-05 23:00:00',freq="30min"),
                   'value':[random.uniform(110, 160) for n in range(239)]})


fig = px.scatter_polar(df, r=df['DATE_TIME'].dt.date, theta=df['DATE_TIME'].dt.strftime('%H:%M'), color='value')
fig.update_layout(width=750, height=1000)
fig.update_layout(coloraxis_colorbar_x=1.2)
fig.show()

【讨论】:

  • 有没有办法显示像分钟一样分散的点数?因为 12 和 12:30 的值在同一行
  • 您提供的数据中没有分钟:)
  • @dspractician,您想如何添加分钟数而您的 theta 是小时数?
  • 我会想办法解决这个问题并提出一个新问题。同时你能检查这个问题吗? :) stackoverflow.com/questions/74448717/…
  • @dspractician 让我根据 30 分钟更新答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2016-04-05
  • 2020-02-17
  • 2021-06-26
  • 2016-06-06
相关资源
最近更新 更多