Python Plotly中使用graph_objects类制作直方图

Python Plotly中使用graph_objects类制作直方图

直方图是数据集分布的图形表示,可以使用Python库Plotly创建,该库有一个称为graph_objects的类,可以使用它创建直方图。直方图有助于了解数据集的形状,包括异常值、中心趋势和分散程度。

Plotly是一个Python库,可以创建各种格式的交互式可视化,包括散点图、折线图和直方图。graph_objects类提供了一个高级接口,用于创建一些复杂的图表,并允许我们自定义绘图的每个方面。在本文中,我们将探讨如何使用Plotly的graph_objects类创建直方图。

plotly.graph_object类

graph_objects类是Plotly的一个子库,允许用户使用更面向对象的方法创建和修改可视化。使用graph_objects,用户可以创建一个Figure对象,并将各种图表类型作为Traces添加到其中。例如,要使用graph_objects创建直方图,可以创建一个Figure对象,并在其中添加一个Histogram trace。

名为graph_objects的类通常被导入为go,并包含一个自动生成的层次结构的Python类,表示图形模式中的非叶节点。术语“graph_objects”指的是这些类的实例。

语法

plotly.graph_objects.Table(arg=None, cells=None, columnorder=None, columnordersrc=None, columnwidth=None, columnwidthsrc=None, customdata=None, customdatasrc=None, domain=None, header=None, hoverinfo=None, hoverinfosrc=None, hoverlabel=None, ids=None, idssrc=None, legendgrouptitle=None, legendrank=None, legendwidth=None, meta=None, metasrc=None, name=None, stream=None, uid=None, uirevision=None, visible=None, **kwargs)

使用图形对象类在 Plotly 中绘制直方图

使用图形对象创建直方图(通过生成随机数据)

按照以下步骤,在 Plotly 中使用图形对象类创建直方图,通过使用 numpy 生成的随机数据:

  • 导入 plotly.graph_objects 模块,该模块包含了我们将用来创建图表的 Histogram 类以及 Figure 类。

  • 使用 numpy.random.normal 函数生成一些随机数据,该函数可以生成来自正态分布的随机数。

  • 使用 Histogram 类创建直方图,并将我们的随机数据作为 x 参数传入。这将创建一个具有默认设置的直方图,稍后我们可以自定义它。

  • 使用 Figure 类的 update_layout 方法为我们的图表添加坐标轴标签和标题。

  • 使用 title 参数指定标题,使用 xaxis_title 和 yaxis_title 参数指定 x 轴和 y 轴标签。

  • 使用 Figure 类的 show 方法在新窗口中显示我们的图表。

示例

import plotly.graph_objects as go
import numpy as np

# Generate some random data
np.random.seed(123)
x = np.random.normal(size=1000)

# Create the histogram using graph_objects
fig = go.Figure(data=[go.Histogram(x=x)])

# Add axis labels and title
fig.update_layout(
   title="Histogram of Random Data",
   xaxis_title="Value",
   yaxis_title="Count",
)

# Show the plot
fig.show()

输出

Python Plotly中使用graph_objects类制作直方图

使用graph_objects创建直方图(内置数据集)

按照以下步骤使用graph_objects类和Python Seaborn库中的tips数据集创建直方图 –

  • 导入必要的库,包括plotly.graph_objects模块和seaborn模块。

  • 使用load_dataset(‘tips’)函数加载内置的tips数据集。

  • 使用go.Histogram()函数创建四种不同类型的直方图。

  • 第一个直方图是使用Total Bill列的基本直方图对象。

  • 第二个直方图是使用Tip列的累积直方图对象,cumulative_enabled参数设置为True。

  • 第三个直方图是使用Size列的归一化直方图对象,histnorm参数设置为’probability’。

  • 第四个直方图是使用Tip和Size列的堆叠直方图对象,每列有不同的标记颜色和图例名称。

  • 使用go.Figure()函数创建一个图形对象,并将所有四个直方图添加到其中。

  • 使用update_layout()方法自定义图形的布局,添加标题和轴标签。

  • 使用show()方法显示图形。

示例

import seaborn as s
import plotly.graph_objects as go

# Load the built-in tips dataset
d= s.load_dataset('tips')

# Create a basic histogram object using the Total Bill column
hist1 = go.Histogram(x=d['total_bill'], nbinsx=30)

# Create a cumulative histogram object using the Tip column
hist2 = go.Histogram(x=d['tip'], nbinsx=20, cumulative_enabled=True)

# Create a normalized histogram object using the Size column
hist3 = go.Histogram(x=d['size'], nbinsx=5, histnorm='probability density')

# Create a stacked histogram object using the Tip and Size columns
hist4 = go.Histogram(x=d['tip'], y=d['size'], nbinsx=10, nbinsy=5, histfunc='sum', histnorm='probability')

# Create a figure object and add all histograms to it
tfig = go.Figure(data=[hist1, hist2, hist3, hist4])

# Customize the layout of the figure
tfig.update_layout(
   title='Histograms of Tips Dataset',
   xaxis_title='Values',
   yaxis_title='Frequency',
   barmode='overlay',
   bargap=0.1,
   bargroupgap=0.1
)

# Display the figure
tfig.show()

输出

基本直方图对象使用Total Bill列−

Python Plotly中使用graph_objects类制作直方图

使用Tip列的累积直方图对象

Python Plotly中使用graph_objects类制作直方图

使用Size列的归一化直方图对象−

Python Plotly中使用graph_objects类制作直方图

使用Tip和Size列的堆叠直方图对象−

Python Plotly中使用graph_objects类制作直方图

结论

总之,Plotly中的graph_objects类为我们提供了一个优化且功能强大的工具,用于创建可自定义的可视化图形,包括直方图。我们知道使用graph_objects,我们可以轻松地使用内置数据集生成不同类型的直方图(基本、归一化、累积、堆叠),或者根据用户的创建的数据集,并根据其需求自定义条形数、图例、颜色和其他参数。生成的可视化图形是交互式的,用户可以缩放、平移和悬停在数据点上以获取更多信息。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程