『Plotly实战指南』--柱状图绘制基础篇

news/2025/3/25 9:07:00/文章来源:https://www.cnblogs.com/wang_yb/p/18785003

柱状图作为最基础的数据可视化形式之一,能直观展示不同类别数据的对比关系,适用于一下的场景:

  • 比较不同类别之间的数据大小,如不同产品的销售额对比。
  • 展示数据的分布情况,如各年龄段的人口数量分布。
  • 分析时间序列数据的变化趋势,如某公司近几年的利润变化。

今天,我们就来深入探索Plotly柱状图的绘制基础,掌握垂直柱状图水平柱状图的绘制方法。

1. 垂直柱状图绘制

1.1. 数据准备

适合绘制垂直柱状图的数据通常是具有明确类别和对应数值的数据。

例如,关于不同城市人口数量的数据:城市名称作为类别,人口数量作为数值,这样的数据结构就非常适合用垂直柱状图来展示。

创建示例数据:

# 示例数据
data = {"城市": ["北京", "上海", "广州", "深圳", "成都"],"人口数量(万)": [2189, 2487, 1530, 1259, 1633]
}

1.2. 绘图

使用 Plotly 创建垂直柱状图的基本代码结构如下:

import plotly.express as px# 示例数据
data = {"城市": ["北京", "上海", "广州", "深圳", "成都"],"人口数量(万)": [2189, 2487, 1530, 1259, 1633]
}# 创建垂直柱状图
fig = px.bar(data_frame=data,x="城市",y="人口数量(万)",title="各城市人口数量柱状图"
)# 显示图形
fig.show()

在上述代码中,我们通过px.bar()函数来创建垂直柱状图。

其中,data_frame 参数用于指定数据源,x参数指定类别的列名,y参数指定数值的列名。

Plotly 会自动将y列中的数值映射到柱状的高度上,从而实现数据到图形的转换。

1.3. 坐标轴标签与刻度设置

上一节的代码将生成一个垂直柱状图,横轴显示城市名称,纵轴显示人口数量,每个城市的柱子高度对应其相应的人口数量。

通过这个直观的图形,我们可以很容易地比较各城市的人口规模。

但是,为了使柱状图更加清晰易懂,我们常常需要对坐标轴标签和刻度进行设置。

# 设置 X 轴标签
fig.update_xaxes(title_text="城市名称")  
# 设置 Y 轴标签
fig.update_yaxes(title_text="人口数量(万人)")  # 调整 X 轴刻度角度和字体大小
fig.update_xaxes(tickangle=45, tickfont=dict(size=10))  
# 设置 Y 轴刻度间隔和字体大小
fig.update_yaxes(dtick=500, tickfont=dict(size=10))  fig.update_yaxes(range=[0, 3000])  # 设置 Y 轴范围为 0 到 3000

通过这些设置,我们可以使坐标轴的标签和刻度更加符合数据的特点和展示需求,从而提高图表的可读性。

2. 水平柱状图绘制

2.1. 数据准备

水平柱状图适用于展示类别名称较长或需要强调数据大小对比的情况。

例如,对于一组关于不同国家 GDP 的数据,国家名称作为类别,GDP 数值作为对应的值,这种数据结构适合用水平柱状图来呈现,尤其是当国家名称较长时,水平布局能更好地展示类别信息。

# 示例数据
data = {"国家": ["美国", "中国", "日本", "德国", "英国"],"GDP(万亿美元)": [25.0, 17.7, 4.9, 4.2, 3.1]
}

2.2. 绘图

要实现水平柱状图,只需对垂直柱状图的代码稍作修改:

import plotly.express as px# 示例数据
data = {"国家": ["美国", "中国", "日本", "德国", "英国"],"GDP(万亿美元)": [25.0, 17.7, 4.9, 4.2, 3.1]
}# 创建水平柱状图
fig = px.bar(data_frame=data,y="国家",  # 将类别列指定为 Y 轴x="GDP(万亿美元)",  # 将数值列指定为 X 轴orientation='h',  # 设置柱状图为水平方向title="各国 GDP 水平柱状图"
)# 显示图形
fig.show()

在上述代码中,我们将 y 参数设置为类别列,x 参数设置为数值列,并通过 orientation='h' 参数指定柱状图为水平布局。

这样,Plotly 就会根据数据生成水平柱状图

运行代码后,生成一个水平柱状图,横轴表示 GDP 数值,纵轴表示国家名称,每个国家的柱子水平延伸,长度对应其 GDP 大小。

这种布局使得国家名称能够完整显示,便于比较各国 GDP 的差异。

2.3. 坐标轴和标签布局

了使水平柱状图更加美观和易读,也可以对坐标轴和标签进行调整。

# 反转 Y 轴顺序,使柱子从上到下排列
fig.update_yaxes(autorange="reversed")  fig.update_layout(margin=dict(l=150),  # 增加左侧边距,防止国家名称被截断title_x=0.5  # 将标题居中显示
)# 设置 Y 轴刻度垂直显示,字体大小为 12
fig.update_yaxes(tickangle=0, tickfont=dict(size=12))
# 设置 X 轴刻度角度为 45 度,字体大小为 10
fig.update_xaxes(tickangle=45, tickfont=dict(size=10))  

通过这些调整,水平柱状图的坐标轴方向和标签布局将更加合理,图表的整体效果将得到显著提升。

3. 两种柱状图的对比

垂直柱状图水平柱状图在视觉上最大的差异在于坐标轴的方向和柱子的排列方式。

垂直柱状图适合展示类别名称较短、需要强调数据分布或趋势的情况;

水平柱状图则更适合类别名称较长、需要突出数据大小对比的场景。

在选择时,根据自己的数据选择不同的柱状图:

  • 类别名称较短且数据点较少:优先选择垂直柱状图,因为它更符合人们的阅读习惯,能够直观地展示数据的高低变化。
  • 类别名称较长或数据点较多:水平柱状图是更好的选择,它可以避免类别名称被截断,使每个类别的数据都能清晰地展示出来。
  • 需要强调数据大小对比:水平柱状图在展示数据大小差异时更具优势,因为水平排列的柱子在视觉上更容易比较长度。
  • 展示时间序列数据或数据分布:垂直柱状图更适合,它能够清晰地呈现数据随时间或其他连续变量的变化趋势。

4. 总结

通过本文,我们掌握了Plotly绘制基础柱状图的关键步骤,包括垂直柱状图和水平柱状图的创建方法、数据映射、坐标轴设置以及标签优化等。

Plotly 强大的功能为我们提供了丰富的可视化手段,能够帮助我们将数据以直观、美观的方式呈现出来。

在实际项目中,我们可以根据数据的特点和分析需求,灵活选择合适的柱状图类型,并运用所学的知识对图表进行定制和优化,从而更好地传达数据背后的信息和价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【作业3】

黄鹏翔 3123004229 黄皓维 3123004228仓库地址 地址这个作业的要求 结对项目这个作业的目标 了解双人合作项目的方法,并完成此次项目PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 30 35Estimate 这个任务需要的时间 25 30Develop…

ASE11N45-ASEMI智能家居专用ASE11N45

ASE11N45-ASEMI智能家居专用ASE11N45编辑:ll ASE11N45-ASEMI智能家居专用ASE11N45 型号:ASE11N45 品牌:ASEMI 封装:TO-252 批号:最新 最大漏源电流:11A 漏源击穿电压:450V RDS(ON)Max:0.39Ω 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道M…

sql 保留两位小数并强制向前进位的方法

使用CEILING函数 CEILING函数会返回大于或等于指定数值的最小整数值 例如,保留两位小数:select CEILING(0.0132*100)/100输出结果 这里,我们将数字乘以100(因为我们想保留两位小数),使用CEILING函数确保向上进位,然后再除以100以恢复原来的数值范围。

可行性分析[3]

第1章 系统分析 1.1 可行性分析 1.1.1 技术可行性分析 1.1.2 经济可行性分析 1.1.3 社会可行性分析 1.1.4 法律可行性分析 1.2 系统流程分析 1.2.1 系统开发总流程 1.2.2 登录流程 1.2.3 系统操作流程 1.2.4 系统性能分析 第1章 可行性分析 1.1可行性分析 随着生活水平的提高,…

PLM项目管理软件的未来:自动化与智能化的发展方向

PLM(产品生命周期管理)项目管理软件在现代企业的产品研发、生产与运营过程中扮演着至关重要的角色。它整合了从产品概念设计到退役处理的全流程信息,助力企业提升效率、降低成本并提高产品质量。随着科技的飞速发展,自动化与智能化成为 PLM 项目管理软件未来的核心发展方向…

研发效率提升30%的秘诀:PLM系统需求管理的6步工作法

在企业的研发过程中,提升效率是一个永恒的追求。研发效率的高低,直接影响着产品推向市场的速度,进而决定企业在竞争中的地位。而在众多影响研发效率的因素中,需求管理无疑是关键一环。PLM(产品生命周期管理)系统作为整合产品全生命周期信息的重要工具,其需求管理功能若能…

数字化转型,目的是为了转型还是数字化?

谢邀,这个问题问得很到位啊! 很多老板和员工都搞不明白,数字化转型到底是在搞什么?是单纯把业务搬到线上?还是整个公司要脱胎换骨? 今天咱们就掰开揉碎了聊,结合我这些年踩过的坑和看到的案例,给大家尽可能讲明白数字化转型到底是什么—— 先说结论:数字化转型的本质是…

Qt 有时嵌入的控件和窗体背景颜色不一样可设置 autoFillBackGround 这个属性

控件本身和作用它的布局都设置下这个属性,应该就可以解决控件颜色不一致的问题了吧。

发现《双影奇境》隐藏关卡!通关就获得独家情报?!

《双影奇境》真是太太太火了! 小编身边十个人里八个人都在玩!而且每个人都赞不绝口,狂夸里面的画面和关卡设计精美又好看。 最近甚至有人发现了地狱级的隐藏关卡!不仅挑战性拉满,通关奖励居然还包含了制作人亲笔签名的瑞典工作室邀请函! 今天小编就来为你解开这一神秘关卡…

远程控制中的云电脑是什么意思?1分钟学会用

很多常用我们ToDesk远程控制的朋友们或许会注意到无论是在PC端还是移动端中都出现有【云电脑】【来云电脑爽玩-新用户免费1小时】这些词句等信息。那么这究竟是代表什么意思呐?云电脑是什么又怎么用呐?为什么要增加云电脑?以下小T就为大家科普下!什么是云电脑?为什么要设云…