工具指南

Plotly 条形图:使用 Python 和 JavaScript 创建交互式条形图

Plotly 是一个强大的开源库,用于创建交互式、出版质量的图表。与 matplotlib 或 Excel 的静态图像不同,Plotly 条形图对用户交互做出响应 - 悬停查看详细信息、缩放、平移,甚至点击时触发操作。本指南涵盖使用 Python 和 JavaScript 中的 Plotly 创建条形图,从基本示例到高级自定义。

交互式 Plotly 条形图:使用 Python 和 JavaScript 创建交互式条形图 示例

开发者调查:语言使用情况

类似于 Plotly 输出的交互式图表风格

fig = px.bar(df, x='language', y=['users', 'growth'], barmode='group')

什么是 Plotly?

Plotly 是一个交互式可视化库,可用于 Python、JavaScript、R 和其他语言。它使用 D3.js 和 WebGL 在浏览器中渲染图表,即使使用大型数据集也能实现丰富的交互性。Plotly Express (Python) 提供高级 API 用于快速创建图表,而 plotly.graph_objects 提供精细控制。

  • 默认可交互 - 悬停工具提示、缩放、平移、选择
  • Web 原生 - 在浏览器和 Jupyter 笔记本中呈现精美
  • 跨平台 - Python、JavaScript、R、Julia、MATLAB
  • Dash 集成 - 使用 Plotly 图表构建完整的 Web 仪表板
  • 导出选项 - 静态图像 (PNG, SVG, PDF) 或交互式 HTML

使用 Plotly Express 创建基本条形图 (Python)

Plotly Express 是在 Python 中创建 Plotly 图表的最快方法。导入并准备数据后,条形图只需一行代码。这是一个最小示例: ```python import plotly.express as px data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [23, 45, 56, 78]} fig = px.bar(data, x='Category', y='Values', title='基本条形图') fig.show() ```

  • px.bar() 默认创建垂直条形图
  • x 和 y 定义类别列和值列
  • fig.show() 渲染交互式图表
  • 适用于 Jupyter 笔记本、Colab、VS Code 和脚本
  • 添加 color='列名' 可按类别着色

Plotly 中的水平条形图

通过设置 orientation='h' 并交换 x 和 y 的赋值来翻转方向。水平条形图适用于较长的类别名称或当您有很多类别时。 ```python fig = px.bar(data, x='Values', y='Category', orientation='h', title='水平条形图') fig.show() ```

分组(聚类)条形图

使用 color 参数并排显示多个系列。Plotly 自动为每个类别分组条形图。 ```python import plotly.express as px df = px.data.medals_long() # 示例数据集 fig = px.bar(df, x='nation', y='count', color='medal', barmode='group', title='各国奥运奖牌') fig.show() ```

  • barmode='group' 将条形图并排放置
  • color 参数将数据拆分为单独的条形图系列
  • 每种颜色都成为一个图例项
  • 悬停显示单个条形图的详细信息

使用 Plotly 创建堆叠条形图

将 barmode 更改为 'stack' 以创建堆叠条形图。使用 color 而不指定 barmode 时的默认行为是堆叠。 ```python fig = px.bar(df, x='nation', y='count', color='medal', barmode='stack', title='堆叠奥运奖牌') fig.show() ```

自定义 Plotly 条形图

Plotly 通过 update_layout() 和 update_traces() 方法提供广泛的自定义。您可以修改颜色、字体、轴、注释等。

  • fig.update_layout(title_font_size=24) - 调整标题样式
  • fig.update_traces(marker_color='blue') - 更改条形颜色
  • fig.update_xaxes(tickangle=45) - 旋转轴标签
  • color_discrete_sequence=['#1f77b4', '#ff7f0e'] - 自定义调色板
  • fig.add_annotation() - 在任何位置添加文本注释

JavaScript 中的 Plotly 条形图

barChartGuides.guides.plotly-bar-chart.content.sections.6.content

添加交互性和动画

使用 Plotly 默认启用或通过最少配置启用的动画和交互功能来增强用户体验。

  • 悬停工具提示 - 默认启用,使用 hovertemplate 自定义
  • 点击事件 - 在 JavaScript 中使用 plotly_click 事件执行自定义操作
  • 动画 - 添加 animation_frame 参数实现动画过渡
  • 范围滑块 - 添加 rangeslider 用于时间序列探索
  • 按钮/下拉菜单 - 使用 updatemenus 添加 UI 控件

何时使用 Plotly 与 ChartGen.ai

对于构建交互式仪表板或数据应用程序的开发人员来说,Plotly 非常出色,因为在这些应用程序中,程序化控制至关重要。然而,对于快速可视化或当您不想编写代码时,ChartGen.ai 提供了一条通往专业图表的更快路径。

  • 选择 Plotly 的场景:构建应用程序/仪表板、需要程序化更新、需要复杂的交互性
  • 选择 ChartGen.ai 的场景:快速的一次性图表、偏好无编码、需要即时导出、客户演示
  • ChartGen.ai 的优势:粘贴数据,几秒钟内获得图表 - 无需库设置
  • Plotly 的优势:完全控制、动画、自定义点击处理程序

分步指南:如何创建Plotly 条形图:使用 Python 和 JavaScript 创建交互式条形图

1

安装 Plotly

Python:pip install plotly。JavaScript:通过 CDN 包含或 npm install plotly.js。

2

导入库

Python:import plotly.express as px。JavaScript:包含 script 标签或 import 语句。

3

准备数据

将数据组织为 DataFrame (Python) 或对象数组 (JavaScript),包含类别和值列。

4

创建条形图

Python:fig = px.bar(df, x='category', y='value')。JavaScript:Plotly.newPlot('div', data)。

5

自定义外观

在 Python 中使用 update_layout()、update_traces(),或在 JavaScript 中使用 layout/config 对象。

6

显示或导出

fig.show() 用于交互式显示,fig.write_image() 用于静态导出,或 fig.to_html() 用于嵌入网页。

常见问题解答

Plotly 是免费的吗?
是的,Plotly 的核心库 (plotly.py, plotly.js) 是开源的且免费。Plotly 还提供商业产品,如用于部署的 Dash Enterprise,但图表库本身是免费的。
如何将 Plotly 条形图保存为图像?
在 Python 中:fig.write_image('chart.png')(需要 kaleido 包)。在浏览器中,单击图表工具栏中的相机图标。您也可以导出为 SVG、PDF 或交互式 HTML。
我可以不用编码使用 Plotly 吗?
Plotly Chart Studio 提供了一个无需代码即可创建图表的 Web 界面,但与库相比功能有限。对于类似质量的无代码条形图,ChartGen.ai 是一个更快的替代方案。
如何在 Plotly 中创建堆叠条形图?
在 px.bar() 中使用 barmode='stack',或在 JavaScript 的 layout 对象中设置 barmode:'stack'。使用 color 参数对数据进行分组以定义堆叠段。
条形图:Plotly vs Matplotlib?
Matplotlib 创建静态图像;Plotly 创建基于 Web 的交互式图表。在出版物或不需要交互性时使用 Matplotlib。对于仪表板、演示文稿或交互式数据探索,使用 Plotly。
如果我不想编码,创建条形图最快的方法是什么?
ChartGen.ai 从粘贴的数据中即时创建专业的条形图。无需 Python、无需 JavaScript、无需库设置 - 只需粘贴和导出。当您需要快速获得结果而无需开发环境时,这是理想选择。

相关指南

立即开始创建专业的条形图

加入成千上万用户的队列,使用 ChartGen.ai 创建令人惊叹的数据可视化。免费使用,无需注册。