Plotly:饼图仅显示图例

2024-05-16 10:12:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图在plotly中创建一个饼图。我的dataframe与此类似:

>>> land_cover                                         count
1   Closed (>40%) broadleaved evergreen or semidec...   1102
2   Closed broadleaved forest or shrubland permane...   22
3   Closed grassland                                     213
4   Closed to open broadleaved decidous shrubland       3
5   Closed to open broadleaved evergreen or semid...    3480
6   Closed to open herbaceousvegetation (or lichen...   501
7   Closed to open shrubland                           9200
8   Closedto open broadleavedforest regularly floo...   89

我正试图创建图表,其情节如下:

import plotly.express as px
import plotly.graph_objects as go


fig = px.pie(df, values='count', names='land_cover', title='land cover')
fig.update_layout(title_x=0.48)

fig.show()

但我得到的图表只显示了图例,没有饼图本身

enter image description here

我已经用这个脚本创建了其他饼图,所以我没有找到它不能正确生成饼图的原因

这可能是什么原因


Tags: ortoimportcount图表figcoveropen
1条回答
网友
1楼 · 发布于 2024-05-16 10:12:46

我相当肯定这纯粹是一个数据问题。我将您的示例数据编辑为逗号分隔的版本:

land_cover,count
1,Closed (>40%) broadleaved evergreen or semidec,1102
2,Closed broadleaved forest or shrubland permane,22
3,Closed grassland,213
4,Closed to open broadleaved decidous shrubland,3
5,Closed to open broadleaved evergreen or semid,3480
6,Closed to open herbaceousvegetation (or lichen,501
7,Closed to open shrubland,9200
8,Closedto open broadleavedforest regularly floo,89

然后我使用df.to_dict()将其转储到dict中,以便于再现。现在,下面完整的代码段生成了以下没有问题的绘图:

绘图

enter image description here

代码

import plotly.express as px
import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'land_cover': {1: 'Closed (>40%) broadleaved evergreen or semidec',
                                  2: 'Closed broadleaved forest or shrubland permane',
                                  3: 'Closed grassland',
                                  4: 'Closed to open broadleaved decidous shrubland',
                                  5: 'Closed to open broadleaved evergreen or semid',
                                  6: 'Closed to open herbaceousvegetation (or lichen',
                                  7: 'Closed to open shrubland',
                                  8: 'Closedto open broadleavedforest regularly floo'},
                                 'count': {1: 1102, 2: 22, 3: 213, 4: 3, 5: 3480, 6: 501, 7: 9200, 8: 89}})

fig = px.pie(df, values='count', names='land_cover', title='land cover')
fig.update_layout(title_x=0.48)

fig.show()

相关问题 更多 >