Plotly 箱型图

Ammar Ali 2024年2月15日
Plotly 箱型图

本教程将讨论使用 Plotly 的 box() 函数创建箱型图。

Plotly 箱型图

Plotly 中的箱型图表示变量通过其四分位数的分布。盒子的末端描述了下四分位数和上四分位数,而盒子内的一条线表示中位数或第二个四分位数。

我们可以使用 Plotly 的 box() 函数来创建给定数据的箱型图。我们必须在 box() 函数中提供数据框或值和标签来创建箱型图。

下面的代码创建了一些随机数据的箱型图。

import plotly.express as px

labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(x=labels, y=value, width=500, height=400)
fig.show()

输出:

Plotly 箱型图

widthheight 参数用于设置图形的宽度和高度(以像素为单位)。我们可以使用 color 参数为每​​个单元格指定默认颜色,并将其值设置为标签。

我们可以使用 orientation 参数和字符串 h 设置盒子的方向,使用字符串 h 表示水平方向,使用 v 表示垂直方向。我们可以使用 x_axis 的 log_x 和 y 轴的 log_y 将轴设置为对数比例,并将其值设置为 true。

我们可以使用 notched 参数将盒子的形状设置为缺口,并将其值设置为 true。我们可以使用 title 参数给图一个标题。

我们可以使用 facet_colfacet_row 创建具有单独单元格的子图,并将它们的值设置为整数或字符串列表以设置子图的标题。我们可以使用 facet_col_spacing 设置列间距和 facet_row_spacing 设置两个子图之间的距离作为行间距。

下面的代码更改了上面提到的参数。

import plotly.express as px

labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
    x=labels,
    y=value,
    width=700,
    height=400,
    color=labels,
    notched=True,
    title="Plotly Box Plot",
    facet_col=[1, 2, "b"],
)
fig.show()

输出:

改变箱型图的属性

默认情况下,box() 函数为每个单元格赋予不同的颜色,但我们可以使用 colorcolor_discrete_map 参数设置每个单元格的颜色。我们必须在 color 参数中传递每个单元格标签,然后使用 color_discrete_map 参数给每个标签一个颜色,以更改每个单元格的颜色。如果我们没有为标签定义颜色,box() 函数会自动为其赋予随机颜色。

下面的代码设置每个单元格的颜色。

import plotly.express as px

labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
    x=labels,
    y=value,
    width=700,
    height=400,
    color=labels,
    color_discrete_map={
        "A": "green",
        "B": "cyan",
        "C": "yellow",
    },
)
fig.show()

输出:

改变箱型图的颜色

我们可以使用 color_discrete_sequence 参数更改默认颜色比例或序列以设置每个单元格的颜色。参数的值应该是有效 CSS 颜色的列表。我们可以使用 Plotly 的内置颜色序列,如 VividLight24Dark2

下面的代码使用 Dark2 颜色序列更改饼图的颜色。

import plotly.express as px

labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(
    x=labels,
    y=value,
    width=700,
    height=400,
    color=labels,
    color_discrete_sequence=px.colors.qualitative.Dark2,
)
fig.show()

输出:

改变箱型图的颜色顺序

要更改代码中的颜色序列,我们必须将颜色序列的名称从 Dark2 更改为 Vivid。有关 Plotly 颜色序列的更多详细信息,请访问此[链接]。

我们可以使用 fig.update_traces() 函数更新 bar() 函数的轨迹。我们可以使用 fillcolor 参数更改框的填充颜色,并将其值设置为黄色等颜色名称。我们可以使用 opacity 参数更改框的不透明度,并将其值从 0 设置为 1。

我们可以使用 legendgrouptitle_text 参数设置图例的标题组,并将其值设置为字符串。

下面的代码使用 fig.update_traces() 函数改变上述的痕迹。

import plotly.express as px

labels = ["A", "B", "C"]
value = [[10, 50, 30], [20, 30, 60], [10, 20, 30], [10, 10, 10]]
fig = px.box(x=labels, y=value, width=700, height=400, color=labels)
fig.update_traces(fillcolor="yellow", opacity=0.8, legendgrouptitle_text="LegendTitle")

fig.show()

输出:

改变箱形图的轨迹

请访问这个链接了解更多关于 box() 函数痕迹的细节。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Plotly Plot