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()
输出:

width 和 height 参数用于设置图形的宽度和高度(以像素为单位)。我们可以使用 color 参数为每个单元格指定默认颜色,并将其值设置为标签。
我们可以使用 orientation 参数和字符串 h 设置盒子的方向,使用字符串 h 表示水平方向,使用 v 表示垂直方向。我们可以使用 x_axis 的 log_x 和 y 轴的 log_y 将轴设置为对数比例,并将其值设置为 true。
我们可以使用 notched 参数将盒子的形状设置为缺口,并将其值设置为 true。我们可以使用 title 参数给图一个标题。
我们可以使用 facet_col 和 facet_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() 函数为每个单元格赋予不同的颜色,但我们可以使用 color 和 color_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 的内置颜色序列,如 Vivid、Light24 和 Dark2。
下面的代码使用 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() 函数痕迹的细节。
