Графически: круговая диаграмма показывает только легенду

Я пытаюсь построить круговую диаграмму. У меня есть датафрейм, похожий на этот:

>>> 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()

Но я получаю диаграмму, которая показывает только легенду без самой круговой диаграммы.

введите описание изображения здесь

Я создал другие круговые диаграммы именно с помощью этого скрипта, поэтому я не могу найти причину, по которой здесь он не генерирует круговую диаграмму должным образом.

Что может быть причиной этого?


person Reut    schedule 18.10.2020    source источник


Ответы (1)


Я почти уверен, что это чисто проблема с данными. Я отредактировал ваши образцы данных в версии, разделенной запятыми:

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

А затем я перекинул его в dict, используя df.to_dict() для облегчения воспроизведения. Теперь полный фрагмент кода ниже дает следующий график без проблем:

участок

введите описание изображения здесь

Код

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()
person vestland    schedule 20.10.2020
comment
спасибо за ответ, я изменил имя одного из значений с пробелов на непробелы, это не помогло, а затем я сделал имена элементов короче, и оно стало лучше. - person Reut; 21.10.2020
comment
@Reut Ладно, круто! Если мой ответ помог вам получить то, что вы хотели, пожалуйста, проголосуйте за него и / или отметьте его как принятый. - person vestland; 21.10.2020
comment
пожалуйста, vonsider также, чтобы увидеть мой пост здесь stackoverflow.com/questions/64466492/, которая может иметь отношение к этой проблеме - person Reut; 21.10.2020
comment
@reut Я посмотрю, когда найду время. Не стесняйтесь напоминать мне, если ничего не слышите =) - person vestland; 21.10.2020