比较净利润率:Python 可视化技术让您一目了然
嗨!在这篇文章中,我们将使用 比较销售净利润 将数据设置为 Python 可视化一家公司的收入和净利润是衡量其经营业绩的重要指标,将两者进行比较,可以让您一目了然地了解公司的收入结构。
我们将使用两个 Python 领先的可视化工具,即 Matplotlib和 Plotly来绘制销售额和净利润数据图。 为了帮助初学者更好地理解,我们将使用 代码示例和详细评注适合希望开始学习数据可视化的人。
净利润比较是什么意思?
销售通过销售产品或服务获得的收入是 总收入并说: 净利润是最后剩余的 净利润这意味着如果将销售额和净收入放在一起比较,则 盈利能力例如,如果销售额在增长,但净收入却持平,您可以评估 成本增加可能是利润率降低的迹象。
相反,如果您的净利润占销售额的比例很大 高效管理通过并列对比,您可以从以下方面了解公司的财务健康状况 直观来帮助你理解。现在,让我们用一些真实世界的示例数据来直观展示这两个指标。
使用 Matplotlib 可视化收入和净利润

首先,创建一个 Matplotlib Matplotlib 是最流行的 Python 数据可视化库可以轻松绘制不同类型的图表。我在下面附上了代码,并解释了每个步骤,这样你就可以跟着做了。
import matplotlib.pyplot as plt
import numpy as np
设置 # 数据(单位:千美元)
公司 = ['英伟达'、'苹果'、'Meta'、'Alphabet'、'博通'、'微软'、'特斯拉'、'亚马逊']
每名员工的收入 = [3600, 2400, 2200, 1900, 1400, 1100, 777, 410]
每名员工的利润 = [2000, 572, 842, 546, 159, 387, 57, 38] [2000, 572, 842, 546, 159, 387, 57, 38
创建并设置 # 图形
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 8), sharey=True)
fig.suptitle('Tech Companies:员工人均收入和净收入(2024 年)', fontsize=24, fontweight='bold', y=0.95)
# 第一张图表:员工人均收入
bars1 = ax1.barh(companies, revenue_per_employee, color='green', alpha=0.7)
ax1.set_title('Revenue Per Employee ($K)', fontsize=18, fontweight='bold')
ax1.set_xlabel('Revenue ($K)')
ax1.set_xlim(0, 4000) # 设置 X 轴范围
ax1.grid(axis='x', linestyle='--', alpha=0.7)
ax1.invert_yaxis() # 扭转列表顺序(高值向上)
# 第二张图表:每位员工的净利润
bars2 = ax2.barh(companies, profit_per_employee, color='lightgreen', alpha=0.7)
ax2.set_title('Net Income Per Employee ($K)', fontsize=18, fontweight='bold')
ax2.set_xlabel('Net Income ($K)')
ax2.set_xlim(0, 4000) # 设置 X 轴范围
ax2.grid(axis='x', linestyle='--', alpha=0.7)
显示 # 条形图末端的值
for ax, bars in zip([ax1, ax2], [bars1, bars2]):
for bar in bars:
width = bar.get_width()
ax.text(width + 50, bar.get_y() + bar.get_height()/2, f'{int(width)}'、
va='center', fontsize=12)
# 为每个柱形图添加网格线
ax1.set_xticks([0, 1000, 2000, 3000])
ax2.set_xticks([0, 1000, 2000, 3000])
移除 # 框(移除框架)
ax1.spines['top'].set_visible(False)
ax1.spines['right'].set_visible(False)
ax1.spines['left'].set_visible(False)
ax2.spines['top'].set_visible(False)
ax2.spines['right'].set_visible(False)
ax2.spines['left'].set_visible(False)
# 删除刻度线,同时保留 Y 轴刻度标签
ax1.tick_params(axis='y', which='both', length=0)
ax2.tick_params(axis='y', which='both', length=0)
在 # 的底部添加说明
fig.text(0.5,0.05,'数值以千美元($K)为单位显示'、
ha='center', fontsize=12, style='italic')
fig.text(0.5, 0.03, '2024 财年的数据'、
ha='center', fontsize=12, style='italic')
调整 # 布局
plt.tight_layout()
plt.subplots_adjust(top=0.88, bottom=0.1)
显示 # 图表
plt.show()代码评注:
import matplotlib.pyplot as plt:将 Matplotlib 库中用于数据可视化的 pyplot 模块添加到plt.导入 numpy 为 npNumPy:使用 NumPy 库进行数值运算。np.公司 = ['Nvidia', 'Apple', ...]:"...... 科技公司名称作为一个列表。雇员人均收入 = [3600, 2400, ...]每个公司 雇员人均收入以千美元计。雇员人均利润 = [2000, 572, ...]每个公司 雇员人均净利润以千美元计。fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 8), sharey=True):1 行 2 列结构,其中 分镜头的图像。将其尺寸设置为宽 14 英寸、高 8 英寸、sharey=True使两个图形共用 y 轴。标题(...):整个图形的 标题为文本。字体大小为 24 号黑体。bars1 = ax1.barh(companies, revenue_per_employee, color='green', alpha=0.7)在第一个分情节中,添加一个公司特定的 雇员人均收入 绿色数据 水平条形图在中心位置。将透明度设置为 0.7。ax1.set_title(...),ax1.set_xlabel(...):第一个图形的 标题和 X 轴标签为ax1.set_xlim(0, 4000):在 x 轴上 显示范围从 0 到 4000。ax1.grid(axis='x', linestyle='--', alpha=0.7):沿 X 轴 虚线网格并将其透明度设置为 0.7。ax1.invert_yaxis():Y 轴顺序为 反向这样,数据值越高的公司就越靠前。bars2 = ax2.barh(...)第二个子情节:在第二个子情节中,添加公司特定的 雇员人均净利润 数据为浅绿色 水平条形图画出来。for ax, bars in zip([ax1, ax2], [bars1, bars2]):...:在两个图表中每个条形图的末尾 数值的循环中,显示bar.get_width()来获取条形图的长度,并将该值显示为一个整数。ax1.set_xticks([0, 1000, 2000, 3000]):在 x 轴上 规模以 1000 为单位。ax1.spines['top'].set_visible(False):在图表顶部 移除书脊在左边。同样,删除左右边界线,只保留 X 轴线。ax1.tick_params(axis='y', which='both', length=0):在 Y 轴上 网格线但保留标签。fig.text(...):在图表底部 补充说明用斜体表示。plt.tight_layout()图元之间 优化间距用于以下方面plt.subplots_adjust(top=0.88, bottom=0.1):图形的 上下页边距以微调plt.show():将完成的图形保存为 屏幕显示用于以下方面
使用 Plotly 进行交互式可视化

这一次 Plotly让我们使用 Plotly 对相同的数据进行可视化处理。 互动式 一个让图形绘制变得简单的 Python 库。Matplotlib 可绘制静态图像图形,而 Plotly 可通过鼠标使用 检查数值或 放大图表区域来创建交互式图表。
将 plotly.graph_objects 导入 go
从 plotly.subplots 导入 make_subplots
设置 # 的数据(单位:千美元)
公司 = ['英伟达'、'苹果'、'Meta'、'Alphabet'、'博通'、'微软'、'特斯拉'、'亚马逊']
每名员工的收入 = [3600, 2400, 2200, 1900, 1400, 1100, 777, 410]
每名员工的利润 = [2000, 572, 842, 546, 159, 387, 57, 38] [2000, 572, 842, 546, 159, 387, 57, 38
创建 # 子图
fig = make_subplots(
rows=1, cols=2、
subplot_titles=('Revenue Per Employee ($K)', 'Net Income Per Employee ($K)')、
shared_yaxes=True、
水平间距=0.05
)
# 第一个图表:每位员工的收入
fig.add_trace(
go.Bar(
y=companies、
x=revenue_per_employee、
orientation='h'、
text=revenue_per_employee、
textposition='outside'、
marker=dict(color='green', opacity=0.7)、
hovertemplate='<b>%{y}</b><br>收入:每名员工 $%{x}K<extra></extra>'
),
row=1, col=1
)
# 第二张图表:每名员工的净利润
fig.add_trace(
go.Bar(
y=companies、
x=profit_per_employee、
orientation='h'、
text=profit_per_employee、
textposition='outside'、
marker=dict(color='lightgreen', opacity=0.7)、
hovertemplate='<b>%{y}</b><br>净收入:每名员工 $%{x}K<extra></extra>'
),
row=1, col=2
)
# 完整布局设置
fig.update_layout(
title=dict(
text='Tech Companies:员工人均收入和净收入(2024 年)'、
font=dict(size=24, family='Arial', color='black')、
x=0.5
),
height=600、
width=1000、
showlegend=False、
注释=[
dict(
text="以千美元($K)为单位显示的每位员工的价值<br>2024 财年的数据"、
showarrow=False、
xref="paper"、
yref="paper"、
x=0.5,
y=-0.15,
font=dict(size=12, style='italic')
)
]
)
设置 # X 轴
fig.update_xaxes(
range=[0, 4000]、
gridcolour='lightgray'、
gridwidth=1、
gridwidth=1, griddash='dash'、
showline=True、
linecolour='black'、
row=1, col=1
)
fig.update_xaxes(
range=[0, 4000]、
gridcolour='lightgray'、
gridwidth=1、
griddash='dash'、
showline=True、
linecolour='black'、
row=1, col=2
)
设置 # Y 轴(移除框架)
fig.update_yaxes(
showline=False、
showgrid=False、
zeroline=False、
autorange='reversed' # 扭转顺序,使数值越大越靠前
)
显示 # 图表
fig.show()代码评注:
将 plotly.graph_objects 导入 go用于交互式可视化 Plotly 图书馆的 graph_objects 模块到去.从 plotly.subplots 导入 make_subplots在 Plotly 系统中 多个分情节函数,用于创建公司 = ['Nvidia', 'Apple', ...]:"...... 科技公司名称作为一个列表。雇员人均收入 = [3600, 2400, ...]每个公司 雇员人均收入以千美元计。雇员人均利润 = [2000, 572, ...]每个公司 雇员人均净利润以千美元计。fig = make_subplots(...):1 行 2 列结构,其中 分镜头创建字幕来设置每个图表的标题、共享yaxes=True共享 Y 轴。fig.add_trace(go.Bar(...), row=1, col=1)在第一个分镜头中 水平条形图到列表中。orientation='h'来指定水平方向、文本和textposition以在条形图外显示数值。marker=dict(color='green', opacity=0.7):条形图 颜色和 透明度为hovertemplate='<b>%{y}</b><br>收入:每名员工 $%{x}K<extra></extra>':""""""""""""等字样。 关于 Hover将被格式化。fig.add_trace(..., row=1, col=2)第二个分镜头 净利润数据以同样的方式。fig.update_layout(...):图形的 总体布局的页面。指定标题、大小、是否显示图例等。注释=[dict(...)]:在图表底部 补充说明到列表中。xref="paper"和yref="paper"来指定相对于整个图形区域的位置。fig.update_xaxes(...):在 x 轴上 范围, 网格线样式, 线条颜色 等等。griddash='dash'来实现点网格。fig.update_yaxes(showline=False, ...):在 Y 轴上 删除边界线并隐藏网格和零线。autorange='reversed'以倒序排序,使数据值较高的公司排在最前面。fig.show():已完成 交互式图表在中央。该图表支持 Plotly 的所有交互功能,包括鼠标悬停功能、缩放和保存图像。
结论:数据可视化的重要性
收入和净利润等重要业务指标可在 可视化比只看数字表格更容易理解。如上所述,Python 的 Matplotlib 和 Plotly 甚至可以让初学者用相对简单的代码绘制出漂亮的图表。
Matplotlib 使用 静态图像非常适合报告和文档,而 Plotly 则使用 互动图表两者各有利弊,请善加利用 🙂 数据可视化是交流大量信息和获得洞察力的有力工具。
今后,当您将其应用于不同的数据时,可能会考虑绘制更复杂的图表或使用其他库(例如 Seaborn.Graphics 库)、 ggplot 等等)。 不断练习和学习它将进一步培养你理解这些数据的能力!
术语表
- 收入企业:企业销售产品或服务并赚取利润 总收入.例如,如果您销售了价值 100 万韩元的商品,您的收入就是 100 万韩元。
- 净利润从收入中减去所有支出 您的最终结果.净利润是收入减去所有费用,如成本、运营费用和税金。
- 数据可视化:数据以 以图表或图形的形式表示在可视化中。可视化使人们更容易理解复杂的数据并从中获得洞察力。
- Matplotlib:Python 使用 标志性数据可视化库.它可以绘制各种图表,包括折线图和条形图,并且具有很高的可调性和可定制性。
- Plotly: 交互式数据可视化库可轻松创建基于网络的交互式图表。提供互动功能,如放大/缩小或在鼠标移动时显示信息,以动态探索数据分析结果。






