LK1*_*999 5 python plotly sunburst-diagram plotly-dash plotly-express
我目前正在使用plotlyexpress 来创建Sunburst 图表。然而,我意识到孩子们的标称值是按字母顺序排列的。特别是对于绘制非常不幸的月份......你知道如何处理这个问题吗?也许是财产或某种解决方法?下面有一个例子,你可以自己尝试一下。提前致谢!
import plotly.express as px
import pandas as pd
import calendar
months = [x for x in calendar.month_name if x]
#Create Dataframe
data = []
for m in months:
data.append(['2018', m, 2])
df = pd.DataFrame(data, columns=['Year', 'Month', 'Value'])
#Compute Sunburst
fig = px.sunburst(df, path=['Year', 'Month'], values='Value')
fig.show()
Run Code Online (Sandbox Code Playgroud)
小智 5
另一种解决方案为每个月提供一个与其数量成比例的角度。对第 8 行进行小调整如下:
data.append(['2018', m,0.00001*i+1])
Run Code Online (Sandbox Code Playgroud)
每个月都分得同样大小的馅饼。
更好的解决方案是禁用元素的自动排序:
fig.update_traces(sort=False, selector=dict(type='sunburst'))
Run Code Online (Sandbox Code Playgroud)
然后按照数据中定义的顺序添加元素。
请检查一下。我刚刚向每个月份添加了值,而不是硬编码 2。因此相应的月份与相应的数字相匹配。
一月 1 日、二月 2 日、... 十二月 12 日
import plotly.express as px
import pandas as pd
import calendar
months = [x for x in calendar.month_name if x]
#Create Dataframe
data = []
for i,m in enumerate(months):
data.append(['2018', m,i+1])
print(data)
df = pd.DataFrame(data, columns=['Year', 'Month', 'Value'])
#Compute Sunburst
fig = px.sunburst(df, path=['Year', 'Month'], values='Value')
fig.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |