plotly_express-8-plotly рисует точечные диаграммы
В этой статье использованиеplotly_express
Чтобы нарисовать точечную диаграмму, используйтеscatter()
метод.
With
px.scatter
, each data point is represented as a marker point, whose location is given by thex
andy
columns.
- пройти через
plotly_express
библиотека для реализации - пройти через
plotly.graph_objects
выполнить
График рассеяния на основе plotly_express
Данные моделирования
Передать данные напрямую в
import plotly_express as px
import pandas as pd
import numpy as np
px.scatter(x=[1,2,6,7,9,8,3,4,5],y=[2,14,12,24,36,8,25,7,18])
Встроенный анализатор данных
Встроенная диафрагма данных
df = px.data.iris()
fig = px.scatter(
df,
x="sepal_width",
y="sepal_length", # 绘图的数据及xy轴
color="species", # 点的颜色
size='petal_length', # 点的大小
hover_data=['petal_width'] # 悬停显示的数据
)
fig.show()
Непрерывный точечный график
Непрерывные точечные графики, такие как: графики тригонометрических функций, линейные графики и т. д.
x = np.linspace(0,10,100) # 0-10的100个数
y = np.sin(x)
px.line(x=x,y=y,labels={"x":"t","y":"sin(t)"})
График рассеяния на основе go.Scatter
demo
-
go.Figure
определить холст -
go.Scatter
Нарисовать картинку, передать необходимые данные
t = np.linspace(0, 10, 50)
y = np.sin(t)
fig = go.Figure(data=go.Scatter(x=t, y=y, mode="markers"))
fig.show()
Создание подграфа
на холстеfigure
рисовать несколько изображений
-
go.figure
определить холст -
go.add_trace()
: рисовать разную графику на одном холсте -
fig.show()
: Показать графику
np.random.seed(2)
N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N) + 8
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N) - 8
random_y3 = np.random.randn(N) - 4
fig = go.Figure()
# add traces
fig.add_trace(go.Scatter(x=random_x,y=random_y0,
mode="markers",name="markers"))
fig.add_trace(go.Scatter(x=random_x, y=random_y1,
mode='lines+markers',name='lines+markers'))
fig.add_trace(go.Scatter(x=random_x, y=random_y2,
mode='lines',name='lines'))
fig.add_trace(go.Scatter(x=random_x, y=random_y3,
mode='markers',name='markers'))
fig.show()
Разброс пузырей - разброс пузырей
Пузырьковая точечная диаграмма: при изменении значений оси размер точек изменяется
fig = go.Figure(go.Scatter(
x=np.linspace(0,50,10),
y=np.random.randint(0,50,10),
mode="markers",
marker=dict(size=np.random.randint(0,50,10), # 通过字典的形式来实现
color=np.random.randint(50,100,10))
))
fig.show()
t = np.linspace(0, 10, 100)
fig = go.Figure()
fig.add_trace(go.Scatter(
x=t, y=np.sin(t),
name='sin',
mode='markers',
marker_color='rgba(20, 180, 60, .8)'
))
fig.add_trace(go.Scatter(
x=t, y=np.cos(t),
name='cos',
mode='markers',
marker_color='rgba(25, 182, 193, .9)'
))
# fig.update_traces(mode='markers', marker_line_width=2, marker_size=10)
fig.update_layout(title='Styled Scatter', # 标题
yaxis_zeroline=False, xaxis_zeroline=False)
fig.show()
t = np.linspace(0, 10, 100)
fig = go.Figure()
fig.add_trace(go.Scatter(
x=t, y=np.sin(t),
name='sin',
mode='markers',
marker_color='rgba(20, 180, 60, .8)'
))
fig.add_trace(go.Scatter(
x=t, y=np.cos(t),
name='cos',
mode='lines',
marker_color='rgba(25, 182, 193, .9)'
))
# Set options common to all traces with fig.update_traces
# 设置整个散点图的大小和间隔
fig.update_traces(mode='markers', marker_line_width=2, marker_size=8)
fig.update_layout(title='Styled Scatter',
yaxis_zeroline=True, xaxis_zeroline=False)
fig.show()
Метки данных при наведении
Как отображать данные при наведении при использовании go.Scatter
df = px.data.iris()
fig = go.Figure(data = go.Scatter( # Figure类中的第一个属性是data
x=df["sepal_length"], # xy坐标轴的数据
y=df["sepal_width"],
mode="markers", # 点的表示
marker_color=df["species_id"], # 点的颜色,px中是color
text=df["species"])) # 悬停的显示,px中是hove_data
fig.show()
Scatter with a Color Dimension
Относится к непрерывному изменению цвета в правой части графика.
x = np.linspace(0,10,500)
y = np.random.randint(0,100,500)
fig = go.Figure(data=go.Scatter(
x=x,
y=y,
mode="markers",
marker=dict( # marker是字典的形式
size=20,
color=np.random.randint(0,100,500), # 指定颜色区间
colorscale="Viridis", # 选择哪种颜色
showscale=True # 右边的颜色尺度尺是否显示
)
))
fig.show()
цвет по умолчанию
x = np.linspace(0,10,500)
y = np.random.randint(0,100,500)
fig = go.Figure(data=go.Scatter(
x=x,
y=y,
mode="markers",
marker=dict( # marker是字典的形式
size=20,
color=np.random.randint(0,100,500),
showscale=True
)
))
fig.show()