Как сделать график солнечных лучей из списка строк в Python?

У меня есть список строк:

How many glasses are on the tab ?
What does the sign say ?
Has the pizza been baked ?
Do you think the boy on the ground has broken legs ?
Is this man crying ?
How many pickles are on the plate ?
What is the shape of the plate?
…

Как я могу преобразовать его в график солнечных лучей в Python?

На графике солнечных лучей показано распределение вопросов по их первым четырем словам, длина дуги пропорциональна количеству вопросов, содержащих это слово, а белые области — это слова, вклад которых слишком мал, чтобы его можно было показать.

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

(Источник изображения -> стр. 5, рис. 3)

Вопрос Как сделать график солнечных лучей в R или Python? не делает никаких предположений относительно формата ввода и Python ответы предполагают, что вход имеет совершенно другой формат.


person Franck Dernoncourt    schedule 05.03.2019    source источник
comment
Возможный дубликат: Как сделать график солнечных лучей в R или Питон?   -  person Lomtrur    schedule 05.03.2019
comment
@Lomtrur Спасибо, вопрос Как сделать график солнечных лучей в R или Python? не делает никаких предположений относительно ввода формат, и ответы предполагают, что вход имеет совершенно другой формат.   -  person Franck Dernoncourt    schedule 05.03.2019


Ответы (2)


Я предлагаю пакет R, ggsunburst https://github.com/didacs/ggsunburst

Это может быть хорошей отправной точкой. Файл data.txt содержит первые четыре слова в вашем примере.

library(ggsunburst)
sb <- sunburst_data('data.txt', type = "lineage", sep = ' ')
sunburst(sb, node_labels = T, node_labels.min = 0)

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

используя первые четыре слова в вопросах из https://conversationstartersworld.com/good-questions-to-ask/

sunburst(sb, node_labels = T, leaf_labels = F, node_labels.min = 5)

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

person didac    schedule 24.02.2020

Расширение Джимми Ата ответ, указывающий на пакет Python plotly:


Вы можете использовать https://plotly.com/python/sunburst-charts/:

Пример с той же страницы:

# From https://plotly.com/python/sunburst-charts/
import plotly.express as px
data = dict(
    character=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],
    parent=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],
    value=[10, 14, 12, 10, 2, 6, 6, 4, 4])

fig =px.sunburst(
    data,
    names='character',
    parents='parent',
    values='value',
)
fig.show()

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

person Franck Dernoncourt    schedule 28.04.2020