Plotly - точечные графики и таблица
Здесь мы узнаем о точечных графиках и табличных функциях в Plotly. Во-первых, начнем с точечных графиков.
Точечные графики
Точечный график отображает точки в очень простой шкале. Он подходит только для небольшого количества данных, так как большое количество точек сделает его очень загроможденным. Точечные графики также известны какCleveland dot plots. Они показывают изменения между двумя (или более) моментами времени или между двумя (или более) условиями.
Точечные графики похожи на горизонтальную гистограмму. Однако они могут быть менее загромождены и упрощают сравнение условий. На рисунке показана диаграмма рассеяния с атрибутом режима, установленным на маркеры.
В следующем примере показано сравнение уровня грамотности среди мужчин и женщин по данным каждой переписи населения после обретения Индией независимости. Две линии на графике представляют процент грамотных мужчин и женщин по каждой переписи населения с 1951 по 2011 год.
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
census = [1951,1961,1971,1981,1991,2001, 2011]
x1 = [8.86, 15.35, 21.97, 29.76, 39.29, 53.67, 64.63]
x2 = [27.15, 40.40, 45.96, 56.38,64.13, 75.26, 80.88]
traceA = go.Scatter(
x = x1,
y = census,
marker = dict(color = "crimson", size = 12),
mode = "markers",
name = "Women"
)
traceB = go.Scatter(
x = x2,
y = census,
marker = dict(color = "gold", size = 12),
mode = "markers",
name = "Men")
data = [traceA, traceB]
layout = go.Layout(
title = "Trend in Literacy rate in Post independent India",
xaxis_title = "percentage",
yaxis_title = "census"
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)
Результат будет таким, как показано ниже -
Таблица в Plotly
Объект таблицы Plotly возвращается go.Table()функция. Трассировка таблицы - это объект графика, полезный для просмотра подробных данных в виде сетки строк и столбцов. Таблица использует порядок столбцов, т.е. сетка представлена как вектор векторов-столбцов.
Два важных параметра go.Table() функции header это первая строка таблицы и cellsкоторые образуют остальные ряды. Оба параметра являются объектами словаря. Атрибут values заголовков - это список заголовков столбцов и список списков, каждый из которых соответствует одной строке.
Дальнейшая настройка стиля выполняется с помощью цвета линии, цвета заливки, шрифта и других атрибутов.
В следующем коде отображается таблица очков кругового этапа недавно завершившегося чемпионата мира по крикету 2019.
trace = go.Table(
header = dict(
values = ['Teams','Mat','Won','Lost','Tied','NR','Pts','NRR'],
line_color = 'gray',
fill_color = 'lightskyblue',
align = 'left'
),
cells = dict(
values =
[
[
'India',
'Australia',
'England',
'New Zealand',
'Pakistan',
'Sri Lanka',
'South Africa',
'Bangladesh',
'West Indies',
'Afghanistan'
],
[9,9,9,9,9,9,9,9,9,9],
[7,7,6,5,5,3,3,3,2,0],
[1,2,3,3,3,4,5,5,6,9],
[0,0,0,0,0,0,0,0,0,0],
[1,0,0,1,1,2,1,1,1,0],
[15,14,12,11,11,8,7,7,5,0],
[0.809,0.868,1.152,0.175,-0.43,-0.919,-0.03,-0.41,-0.225,-1.322]
],
line_color='gray',
fill_color='lightcyan',
align='left'
)
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)
Результат, как указано ниже -
Данные таблицы также могут быть заполнены из фрейма данных Pandas. Создадим файл, разделенный запятыми (points-table.csv) как показано ниже -
Команды | Мат | Выиграл | Потерянный | Связана | NR | Оч | NRR |
---|---|---|---|---|---|---|---|
Индия | 9 | 7 | 1 | 0 | 1 | 15 | 0,809 |
Австралия | 9 | 7 | 2 | 0 | 0 | 14 | 0,868 |
Англия | 9 | 6 | 3 | 0 | 0 | 14 | 1.152 |
Новая Зеландия | 9 | 5 | 3 | 0 | 1 | 11 | 0,175 |
Пакистан | 9 | 5 | 3 | 0 | 1 | 11 | -0,43 |
Шри-Ланка | 9 | 3 | 4 | 0 | 2 | 8 | -0,919 |
Южная Африка | 9 | 3 | 5 | 0 | 1 | 7 | -0,03 |
Бангладеш | 9 | 3 | 5 | 0 | 1 | 7 | -0,41 |
Teams,Matches,Won,Lost,Tie,NR,Points,NRR
India,9,7,1,0,1,15,0.809
Australia,9,7,2,0,0,14,0.868
England,9,6,3,0,0,12,1.152
New Zealand,9,5,3,0,1,11,0.175
Pakistan,9,5,3,0,1,11,-0.43
Sri Lanka,9,3,4,0,2,8,-0.919
South Africa,9,3,5,0,1,7,-0.03
Bangladesh,9,3,5,0,1,7,-0.41
West Indies,9,2,6,0,1,5,-0.225
Afghanistan,9,0,9,0,0,0,-1.322
Теперь мы создаем объект фрейма данных из этого CSV-файла и используем его для построения трассировки таблицы, как показано ниже:
import pandas as pd
df = pd.read_csv('point-table.csv')
trace = go.Table(
header = dict(values = list(df.columns)),
cells = dict(
values = [
df.Teams,
df.Matches,
df.Won,
df.Lost,
df.Tie,
df.NR,
df.Points,
df.NRR
]
)
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)