Plotly 条形图

Ammar Ali 2024年2月15日
Plotly 条形图

本教程将讨论使用 Plotly 的 bar() 函数创建条形图。

Plotly 条形图

条形图将数据显示为矩形条,其高度等于它所代表的值。我们可以使用 Plotly 的 bar() 函数来创建条形图。

条形图有两个轴;一个轴将数据表示为矩形条,另一个轴是标签。我们可以通过交换轴使垂直条形图水平。

我们应该在 bar() 函数中传递数据和标签来创建条形图。我们还可以在 bar() 函数中传递数据框或数组。

让我们创建一个随机数据的条形图。请参阅下面的代码。

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(x=labels, y=value, height=400, width=500)
fig.show()

输出:

条形图

widthheight 参数用于设置图形的宽度和高度(以像素为单位)。我们可以使用 color 参数和与输入数据长度相同的数字数组为每个单元格赋予不同的颜色。

我们可以使用 text 参数和包含每个单元格文本的字符串列表在每个单元格中放置文本。我们可以使用 base 参数和包含每个细胞碱基位置的列表来设置每个细胞碱基的位置。

我们可以使用 x 轴的 error_x 参数和 y 轴的 error_y 参数为每​​个单元格添加误差线。参数的值应该是一个包含每个单元格的数字错误值的列表。

我们可以使用 opacity 参数将每个单元格的不透明度设置为 0 到 1。我们可以使用 orientation 参数将单元格的方向设置为水平或垂直,并将其设置为 v 表示垂直,h 表示水平。

我们可以使用 x 轴的 log_x 参数和 y 轴的 log_y 参数将每个轴设置为对数比例,并将其值设置为 true。我们还可以使用 title() 参数和包含标题文本的字符串来设置图形标题。

让我们改变上面提到的参数。请参阅下面的代码。

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=[1, 5, 10],
    text=["a", "b", "c"],
    base=[0, 15, 50],
    error_y=[5, 10, 15],
    opacity=0.8,
    orientation="v",
    title="plotly bar plot",
)
fig.show()

输出:

改变 plotly 条形图的属性

默认情况下,bar() 函数为每个单元格赋予不同的颜色,但我们可以使用 colorcolor_discrete_map 参数设置每个单元格的颜色。我们必须在 color 参数中传递每个单元格标签,并使用 color_discrete_map 参数给每个标签一个颜色,以更改每个单元格的颜色。

如果我们没有为标签定义颜色,bar() 函数会自动为其赋予随机颜色。让我们设置每个单元格的颜色。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=labels,
    color_discrete_map={
        "A": "green",
        "B": "cyan",
        "C": "yellow",
    },
)
fig.show()

输出:

改变条形图的颜色

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

让我们使用 Rainbow 颜色序列更改饼图的颜色。请参阅下面的代码。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.show()

输出:

改变条形图的颜色顺序

要更改代码中的颜色序列,我们应该将颜色序列的名称从 Rainbow 更改为 Sunset。单击此链接以获取有关 Plotly 中颜色序列的更多信息。

我们还可以使用 fig.update_traces() 函数更新 bar() 函数的轨迹。我们可以使用 text 参数设置每个单元格内显示的文本,并使用 textposition 参数设置文本的位置。支持的文本位置是 outsideinsideautonone

我们可以使用 textfont_size 参数更改文本的字体大小,使用 textangle 参数更改文本角度,使用 textfont_color 参数更改文本颜色。我们可以使用标记参数更改标记属性,例如线宽和颜色。

让我们为每个单元格添加随机文本,给每个文本颜色、角度、字体大小、每个单元格周围的线,并设置它的颜色和宽度。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 80]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.update_traces(
    text=["First", "Second", "Third"],
    textposition="outside",
    textfont_size=16,
    textangle=90,
    textfont_color="Red",
    marker=dict(line=dict(color="green", width=3)),
)
fig.show()

输出:

改变条形图的痕迹

单击此链接以获取有关 bar() 函数跟踪的更多信息。

作者: 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