如何在Python Plotly中从DataFrame列添加多个文本标签?
Plotly是一个Python中的开源绘图库,可以生成多种不同类型的图表。Python用户可以使用Plotly创建交互式的基于Web的可视化。
在本教程中,我们将看到如何使用Plotly从DataFrame列中添加多个文本标签到图表中。
- 在这里,我们将使用plotly.graph_objects模块生成图形。它包含许多方法来自定义图表并将它们呈现为HTML格式。
-
然后,我们将使用该模块的Scatter()方法生成散点图。Scatter()的“line”属性包含一个“color”参数,我们将使用它来指定所需的颜色。
-
要生成DataFrame,我们将使用Pandas模块。
按照以下步骤添加多个文本标签从DataFrame列。
步骤1
导入plotly模块并将其别名为 py 。类似地,导入 pandas 模块并将其别名为 pd。
import plotly as py
import pandas as pd
步骤2
导入plotly.graphs_objs模块并将其别名为go。
import plotly.graphs_objs as go
步骤3
使用Pandas模块创建数据框。
df = pd.DataFrame({
'Age':[20,22,23,24,21],
'Mark':[80,85,90,95,99],
},
步骤4
设置索引名称并基于“Age”列对值进行排序,
# 设置索引名称
df.index.name = 'DataFrame'
# 排序值
df = df.sort_values('Age')
步骤5
创建跟踪以生成散点图并添加文本以显示在列上悬停。
# 创建跟踪以生成散点图
# 文本显示列上的悬停
trace = go.Scatter(
x = df.index,
y = df['Mark'],
name = 'Mark',
text = df['Age'],
mode = 'lines+markers',
line = dict(color='green',width = 4)
)
步骤6
创建包含title值的布局dict,用于在X和Y轴上添加多个文本标签。
layout = dict(
title = 'Multiple text labels',
xaxis = dict(title = 'DataFrame'),
yaxis = dict(title = 'Mark'),
)
步骤7
使用layout值生成图形,并创建离线图。
data = [trace]
fig = dict(data=data, layout=layout)
py.offline.plot(fig, filename = 'df.html')
例子
这是从DataFrame列中添加多个文本标签的完整代码 −
导入 pandas 作为 pd
导入 plotly 作为 py
导入 plotly.graph_objs 作为 go
# 创建数据帧
df = pd.DataFrame({
'年龄':[20,22,23,24,21],
'标记':[80,85,90,95,99],
}, index=['一个','两个','三个','四个','五个'])
# 设置索引名称
df.index.name = '数据帧'
# 对值进行排序
df = df.sort_values('年龄')
# 创建 traces 以生成散点图
# 文本以在 column 上显示悬停
trace = go.Scatter(
x = df.index,
y = df['标记'],
name = '标记',
text = df['年龄'],
mode = 'lines+markers',
line = dict(color='green',width = 4)
)
# 设置 X 轴和 Y 轴的布局标题
layout = dict(
title = '多个文本标签',
xaxis = dict(title = '数据帧'),
yaxis = dict(title = '标记'),
)
# 创建数据
data = [trace]
# 设置数据集和布局的字典
fig = dict(data=data, layout=layout)
# 生成 HTML 文件
py.offline.plot(fig, filename = 'df.html')
输出
它将在浏览器上显示以下输出 −