比较净利润率: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让我们使用 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: 交互式数据可视化库可轻松创建基于网络的交互式图表。提供互动功能,如放大/缩小或在鼠标移动时显示信息,以动态探索数据分析结果。
테리 이모티콘
(快乐编码)

类似文章