Библиотека Python предоставляет нам интерактивную библиотеку Plotly с открытым исходным кодом, которая может поддерживать более 40 уникальных типов диаграмм, охватывающих широкий список статистических, финансовых, географических, научных и трехмерных вариантов использования.
Чтобы установить сюжет, выполните следующую команду в терминале:
pip3 install plotly.express
После того, как мы установили библиотеку, теперь мы можем изменить размер фигуры, манипулируя размером графика и размерами полей. Это также может быть достигнуто с использованием различных методов для различных вариантов использования.
Изменение высоты, ширины и полей с помощью Plotly Express
Теперь мы попробуем изменить размер фигуры, изменив ширину и высоту с помощью Plotly Express. Его можно использовать для построения тех же интерактивных диаграмм с помощью нескольких строк кода.
Давайте посмотрим на пример, где мы сначала импортировали библиотеку plotly.express. Затем мы будем использовать метод data.wind() для создания фрейма данных, а затем построим диаграмму рассеяния для фрейма данных.
Python
# Importing plotly library
import
plotly.express as plotly
# Create a dataframe
dataFrame
=
plotly.data.wind()
# Plot the figure
myFigure
=
plotly.scatter(dataFrame, x
=
"direction"
, y
=
"frequency"
,
width
=
400
, height
=
400
)
# Display the figure
myFigure.show()
Выход:
Давайте рассмотрим пример, в котором мы можем обновить поля графика, используя размеры полей: правое верхнее, левое и нижнее (l, r, t, b). И эти параметры поля были переданы методу update_layout(), который вызывается для объекта фигуры. Применив это, мы, наконец, построили графические объекты в области диаграммы, чтобы обеспечить лучшую визуализацию.
Python3
# Importing plotly.express library
import
plotly.express as plotly
# Creating a dataframe
dataframe
=
plotly.data.tips()
# Creating a figure using scatter() method
myFigure
=
plotly.scatter(dataframe, x
=
"total_bill"
,
y
=
"tip"
, facet_col
=
"sex"
,
width
=
600
, height
=
400
)
# Modifying the figure layout update_layout() method
myFigure.update_layout(
margin
=
dict
(l
=
30
, r
=
30
, t
=
30
, b
=
20
),
paper_bgcolor
=
"LightSteelBlue"
,
)
# Display the figure to console
myFigure.show()
Выход:
Измените высоту, ширину и поля с помощью графических объектов в графике
Теперь мы будем использовать графические объекты вместо сюжетного экспресса, чтобы изменить высоту, ширину и поля. Чтобы иметь больший контроль над элементами диаграммы, можно использовать графические объекты вместо графического выражения. Графические объекты считаются строительными блоками фигур на низком уровне.
Python3
# Importing plotly.graph_objects and plotly.express
import
plotly.graph_objects as plotly
import
plotly.express as px
# Generating a figure
myFigure
=
plotly.Figure()
# Creating a dataframe
dataFrame
=
px.data.wind()
# Add traces to the figure
myFigure.add_trace(plotly.Scatter(
x
=
dataFrame[
"direction"
],
y
=
dataFrame[
"frequency"
]
))
# Display the figure
myFigure.show()
Выход:
В этом примере для установки области диаграммы мы использовали высоту и ширину. Параметры поля используются для установки объектов графика. Обратите внимание, что на этот раз все эти аргументы использовались внутри функции update_layout() объекта фигуры.
Python3
# Importing plotly.graph_objects and plotly.express
import
plotly.graph_objects as plotly
import
plotly.express as px
# Generating a figure
myFigure
=
plotly.Figure()
# Creating a dataframe
dataFrame
=
px.data.wind()
# Adding traces to the figure
myFigure.add_trace(plotly.Scatter(
x
=
dataFrame[
"direction"
],
y
=
dataFrame[
"frequency"
]
))
# Lets update the figure using update_layout() method on myFigure
myFigure.update_layout(
title
=
"Wind Frequencies"
,
xaxis_title
=
"Direction"
,
yaxis_title
=
"Frequency"
,
autosize
=
False
,
width
=
400
,
height
=
500
,
margin
=
dict
(l
=
30
,r
=
30
,b
=
30
,
t
=
30
,pad
=
3
),
paper_bgcolor
=
"LightSteelBlue"
,
)
# Display the figure
myFigure.show()
Выход:
Автоматизация изменений полей в графике
Теперь попробуем автоматизировать изменение полей в plotly.
Python3
# Importing plotly.graph_objects and plotly.express
import
plotly.graph_objects as plotly
import
plotly.express as px
myFigure
=
plotly.Figure()
myFigure.add_trace(plotly.Bar(
x
=
[
"Moranp"
,
"Turquoise"
,
"Cornflower"
,
"Raddles"
],
y
=
[
6
,
4
,
5
,
11
]
))
myFigure.update_layout(
autosize
=
False
,
width
=
700
,
height
=
700
,
yaxis
=
dict
(
title_text
=
"Heights"
,
ticktext
=
[
"little"
,
"very long title"
,
"long"
,
"short title"
],
tickvals
=
[
2
,
4
,
6
,
8
],
tickmode
=
"array"
,
titlefont
=
dict
(size
=
20
),
)
)
myFigure.update_yaxes(automargin
=
False
)
myFigure.show()
Выход:
Как вы можете видеть выше, без использования манипулирования полями, метки деления оси Y перекрываются с заголовком оси Y.
Чтобы избежать этого перекрытия, мы должны установить «automargin» как True. Таким образом, он автоматически отрегулирует размер поля. А аргумент automargin будет препятствовать перекрытию меток делений заголовками осей.
Python3
myFigure.update_yaxes(automargin
=
True
)
myFigure.show()
Выход: