如何在 Python Plotly 中从 DataFrame 列添加多个文本标签?


Plotly 是 Python 中一个开源绘图库,可以生成多种不同类型的图表。Python 用户可以使用 Plotly 创建交互式网页可视化。

在本教程中,我们将了解如何使用 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

设置索引名称并根据“年龄”列对值进行排序。

# Set index name
df.index.name = 'DataFrame'

# Sort the values
df = df.sort_values('Age')

步骤 5

创建轨迹以生成散点图并添加文本以显示列上的悬停。

# Create traces to generate scatter plot
# Text to show hover on column
trace = go.Scatter(
   x = df.index,
   y = df['Mark'],
   name = 'Mark',
   text = df['Age'],
   mode = 'lines+markers',
   line = dict(color='green',width = 4)
)

步骤 6

使用 **dict** 中的 **title** 创建 **layout**,以便在 X 轴和 Y 轴上显示多个文本标签。

layout = dict(
   title = 'Multiple text labels',
   xaxis = dict(title = 'DataFrame'),
   yaxis = dict(title = 'Mark'),
)

步骤 7

使用布局值生成图形并创建脱机绘图。

data = [trace]
fig = dict(data=data, layout=layout)
py.offline.plot(fig, filename = 'df.html')

示例

以下是从 DataFrame 列添加多个文本标签的完整代码:

import pandas as pd import plotly as py import plotly.graph_objs as go # Crete dataframe df = pd.DataFrame({ 'Age':[20,22,23,24,21], 'Mark':[80,85,90,95,99], }, index=['one','two','three','four','five']) # Set index name df.index.name = 'DataFrame' # Sort the values df = df.sort_values('Age') # Create traces to generate scatter plot # Text to show hover on column trace = go.Scatter( x = df.index, y = df['Mark'], name = 'Mark', text = df['Age'], mode = 'lines+markers', line = dict(color='green',width = 4) ) # Set layout title for X and Y axis layout = dict( title = 'Multiple text labels', xaxis = dict(title = 'DataFrame'), yaxis = dict(title = 'Mark'), ) # Create data data = [trace] # Set dict of dataset and layout fig = dict(data=data, layout=layout) # Generate html file py.offline.plot(fig, filename = 'df.html')

输出

它将在浏览器上显示以下输出:


更新于: 2022-10-26

2K+ 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告