如何在 Plotly 中创建累积直方图?

plotlypythonserver side programmingprogramming

累积直方图是一种直方图,显示数据集的累积分布函数 (CDF)。CDF 表示来自数据集的随机观察值小于或等于某个值的概率。当您想要比较两个或多个数据集的分布,或者当您想要可视化低于某个阈值的数据点比例时,累积直方图非常有用。

Plotly 是一个用于创建交互式和出版质量可视化的 Python 库。它建立在 D3.js 可视化库之上,并提供多种可视化类型,包括散点图、条形图和直方图。Plotly 还支持缩放、平移和悬停工具提示等交互式功能。

要在 Plotly 中创建累积直方图,您首先需要将数据加载到 Pandas DataFrame 中。将数据放入 DataFrame 后,即可使用 Plotly Express 创建数据直方图。

创建累积直方图

累积直方图是一种显示数据集累积分布函数 (CDF) 的直方图。它不显示每个 bin 中数据点的频率,而是显示该 bin 中数据点的累积频率。在 Plotly 中创建直方图时,可以通过将累积参数设置为 True 来创建此类直方图。

现在让我们创建一些累积直方图。请考虑下面显示的示例。

示例 1:垂直累积直方图

垂直累积直方图是一种在 y 轴上显示累积频率并在 X 轴上显示变量值的直方图。请考虑下面显示的代码。

import plotly.express as px
import plotly.graph_objects as go

# 从 Plotly Express 加载 Iris 数据集
iris_data = px.data.iris()

# 创建一个带有累积直方图的新图形
fig = go.Figure(
    data=[go.Histogram(
        x=iris_data['sepal_width'], # 使用萼片宽度作为变量
        cumulative_enabled=True # 启用累积模式
    )]
)

# 为图形添加标签和标题
fig.update_layout(
   title='Cumulative Histogram of Sepal Width in Iris Dataset', xaxis_title='Sepal Width', yaxis_title='Cumulative Frequency'
)

# 显示图形
fig.show()

解释

  • 导入 Plotly Express 和 Plotly Graph Objects 库。

  • 将 Plotly Express 中的 Iris 数据集加载到名为"iris_data"的变量中。

  • 使用"go.Figure"方法创建一个带有累积直方图的新图形。

  • 使用"go.Histogram"方法设置直方图的数据,并将要绘制的变量指定为 Iris 数据集中的"sepal_width"列。

  • 通过将"cumulative_enabled"设置为 True,为直方图启用累积模式。

  • 使用"update_layout"方法向图形添加标签和标题,指定标题、x 轴标签和 y 轴标签。

  • 使用"show"方法显示结果图形。

输出

在运行代码之前,请确保您的系统上有 Plotly。如果没有,那么您可以使用 pip 包管理器安装它。

执行代码后,您将在浏览器中看到以下图表 -

示例 2:水平累积直方图

水平累积直方图是累积频率显示在 X 轴上、变量值显示在 Y 轴上的直方图。请考虑下面显示的代码。

import plotly.express as px
import plotly.graph_objects as go

# 从 Plotly Express 加载 Iris 数据集
iris_data = px.data.iris()

# 创建一个带有水平累积直方图的新图形
fig = go.Figure(
    data=[go.Histogram(
        y=iris_data['sepal_width'], # 使用萼片宽度作为变量
        cumulative_enabled=True, # 启用累积模式
        orientation='h' # 将方向设置为水平
    )]
)
# 为图形添加标签和标题
fig.update_layout(
   title='Horizontal Cumulative Histogram of Sepal Width in Iris Dataset',
   xaxis_title='Cumulative Frequency',
   yaxis_title='Sepal Width'
)

# 显示图形
fig.show()

解释

  • 导入 Plotly Express 和 Plotly Graph Objects 库。

  • 将 Plotly Express 中的 Iris 数据集加载到名为"iris_data"的变量中。

  • 使用"go.Figure"方法创建一个带有水平累积直方图的新图形。

  • 使用"go.Histogram"方法设置直方图的数据,并将要绘制的变量指定为 Iris 数据集中的"sepal_width"列。

  • 通过将"cumulative_enabled"设置为 True,为直方图启用累积模式。

  • 通过将"orientation"设置为"h",将直方图的方向设置为水平。

  • 使用"update_layout"方法向图形添加标签和标题,指定标题、x 轴标签和 y 轴标签。

  • 使用"show"方法显示结果图形。

输出

执行代码后,您将在浏览器中看到以下图表 -

结论

总之,在 Plotly 中创建累积直方图是一个简单的过程。它涉及使用"cumulative_enabled"参数启用直方图的累积模式并指定要绘制的变量。Plotly 提供了各种自定义选项,例如设置方向、向图形添加标签和标题以及调整直方图的外观。凭借其交互式和动态功能,Plotly 是创建信息丰富且视觉上吸引人的累积直方图的绝佳工具。


相关文章