В этой статье мы обсудим некоторые из последних изменений в Plotly, в чем заключаются преимущества и почему Plotly стоит рассмотреть для визуализации данных.
Оригинал статьи Криса здесь
В марте 2019 года Plotly выпустила Plotly Express. Эта новая высокоуровневая библиотека решила многие мои опасения по поводу питонической природы Plotly API, о которых я расскажу в этой статье.
Когда я создаю визуализации, то перебираю множество разных подходов. Для меня важно, что я могу легко переключать подходы к визуализации с минимальными изменениями кода.
Подход Plotly Express в чем-то похож на seaborn.
Для демонстрации будем использовать данные о злаках, которые я очистил для ясности:
#!pip3 install plotly
import pandas as pd
import plotly.express as px
df = pd.read_csv('https://github.com/chris1610/pbpython/blob/master/data/cereal_data.csv?raw=True')
Данные содержат некоторые характеристики различных злаков:
df.head()
name | mfr | type | calories | protein | fat | sodium | fiber | carbo | sugars | potass | vitamins | shelf | weight | cups | rating | cereal | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 100% Bran | Nabisco | Cold | 70 | 4 | 1 | 130 | 10.0 | 5.0 | 6 | 280 | 25 | Top | 1.0 | 0.33 | 68.40 | 1 |
1 | 100% Natural Bran | Quaker Oats | Cold | 120 | 3 | 5 | 15 | 2.0 | 8.0 | 8 | 135 | 0 | Top | 1.0 | 1.00 | 33.98 | 1 |
2 | All-Bran | Kellogs | Cold | 70 | 4 | 1 | 260 | 9.0 | 7.0 | 5 | 320 | 25 | Top | 1.0 | 0.33 | 59.43 | 1 |
3 | All-Bran with Extra Fiber | Kellogs | Cold | 50 | 4 | 0 | 140 | 14.0 | 8.0 | 0 | 330 | 25 | Top | 1.0 | 0.50 | 93.70 | 1 |
4 | Almond Delight | Ralston Purina | Cold | 110 | 2 | 2 | 200 | 1.0 | 14.0 | 8 | -1 | 25 | Top | 1.0 | 0.75 | 34.38 | 1 |
Если мы хотим посмотреть на взаимосвязь между rating
и sugars
и включить название злака в виде ярлыка при наведении курсора:
fig = px.scatter(df,
x='sugars',
y='rating',
hover_name='name',
title='Cereal ratings vs. sugars')
fig.show()