把线形图可视化转换成旭日图。

3

我有一个数据框,长这样:

id         date          API_changes    count    content

134     2019-01-01           2           NaN      Nan
134     2019-02-05          34           12       API deleted
134     2019-02-12          18            8       Deprecation
134     2019-03-10          56           29       Segmentation Error
134     2019-05-12          75           40       Path deleted
134     2019-07-01          25           10       Type required
134     2019-10-09          137          55       API deprecated
134     2019-12-31          32           18       Media type removed
134     2020-01-03          150          99       Required param missing

我想以太阳图或任何能够捕捉API_changescount比例的图表形式来可视化这些数据。每个commit_datecount指定了API_changes中破坏性更改的数量。

我之前以散点图的形式进行了可视化,使用轨迹(在x轴上是date,在y轴上是API_changescolor作为content列,symbol也是如此),但这并不能达到目的,因为我无法在日期上直观地看到变化的大小差异。

一种选择是堆叠条形图,但我在想是否有更多独特的图表(最好是太阳图)适用于这种类型的分析?


这段代码可行,之前的代码似乎返回了一个我不太理解的错误,非常感谢! - Brie MerryWeather
@BrieMerryWeather 所以基本上我之前的代码,去掉 "groupedby" 就可以了? - VonC
是的,它非常有帮助,非常感谢。 - Brie MerryWeather
1个回答

1
你可以尝试使用 Plotly Express,它直接支持 Sunburst图表
假设有一个包含数据的 data.csv 文件:
id,date,API_changes,count,content
134,2019-01-01,2,,NaN
134,2019-02-05,34,12,API deleted
134,2019-02-12,18,8,Deprecation
134,2019-03-10,56,29,Segmentation Error
134,2019-05-12,75,40,Path deleted
134,2019-07-01,25,10,Type required
134,2019-10-09,137,55,API deprecated
134,2019-12-31,32,18,Media type removed
134,2020-01-03,150,99,Required param missing

你可以将CSV文件读入DataFrame中:

import pandas as pd

df = pd.read_csv('data.csv')

并创建Sunburst图表:


df['date'] = pd.to_datetime(df['date'])
df['date'] = df['date'].dt.strftime('%Y-%m-%d')

fig = px.sunburst(
    df,
    path=['date', 'content'],
    values='count',
    color='API_changes',
    color_continuous_scale='viridis',
    title='API Changes Sunburst Chart',
    height=600,
)

fig.show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接