迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Matplotlib 瀑布图

作者:迹忆客 最近更新:2023/03/17 浏览次数:

本篇文章将介绍如何在 Python 中创建瀑布图或图表。我们将使用 Matplotlib 和 waterfall_chart 库来绘制二维和三维瀑布图。

在 Python 中使用 Matplotlib 创建 2D 瀑布图

瀑布图在金融中很常见,但当你有部分到整体的关系时,瀑布图就不是那么有效了。

假设你想展示我们的项目成本明细。它在表格中的样子需要一些时间让人们浏览表格并比较数字。

请注意,瀑布图不附带 Python 默认包。首先,我们需要安装 waterfallcharts 包。

pip install waterfallcharts

如果你在安装过程中遇到任何错误,请使用以下命令升级你的 pip

python -m pip install --upgrade pip

我们需要导入所需的库来创建瀑布图或绘图。

import matplotlib.pyplot as plot
import waterfall_chart as waterfall

rcParams 参数采用键值对。使用此参数可以访问图形元素,例如图形大小和面部颜色。

plot.rcParams["figure.figsize"] = (8,6)
plot.rcParams["figure.facecolor"]="yellow"

然后我们为 XYZ 公司创建一个数据集。我们将可视化 XYZ 公司的销售与相应的月份。

x1,y1=["Jan","Feb","March","April","May","jun","July","Aug"],[10,25,30,50,-10,15,-5,10]
waterfall.plot(x1, y1,)

完整代码 - 2D 瀑布图:

import matplotlib.pyplot as plot
import waterfall_chart as waterfall

# Set set width and height and face color as yellow
plot.rcParams["figure.figsize"] = (8,6)
plot.rcParams["figure.facecolor"]="yellow"
# dependant and independent variables
x1,y1=["Jan","Feb","March","April","May","jun","July","Aug"],[10,25,30,50,-10,15,-5,10]
waterfall.plot(x1, y1,)
# Set x labels with 45 rotation
plot.xticks(rotation=45)

plot.title("2D Waterfall plot")
# Add the padding and merging for visual elements
plot.tight_layout()
plot.show()

输出:

Matplotlib 2D 瀑布图

用绿色标出的利润增加和损失意味着负分与红色标出,而 XYZ 公司的净销售额与蓝色标出。

在 Python 中使用 Matplotlib 创建 3D 瀑布图

在前面的示例中,我们学习了如何创建 2D 瀑布图。本节将演示使用 Matplotlib 库中的 PolyCollection 类创建 3D 瀑布图。

我们将导入以下所需的库来创建 3D 瀑布图。

from matplotlib.collections import PolyCollection
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors
import numpy as np

如果我们想创建一个 3D 绘图,我们需要从 pyplot 调用 axes() 方法。

axes=plt.axes(projection="3d")

现在我们为三个维度生成一些随机数据集。x1 变量使用 arange() numpy 方法存储给定范围,y1 变量将使用 random.rand() numpy 方法在每次迭代中生成一个随机整数。

x1 = np.arange(0, 10, 0.4)
verts = []
z1 = [0.0, 1.0, 2.0, 3.0]
for z in z1:
    y1 = np.random.rand(len(x1))
    y1[0], y1[-1] = 0, 0
    verts.append(list(zip(x1, y1)))

PolyCollection() 函数将第一个参数作为数据点列表,第二个参数是帮助我们显示特定颜色的 facecolors。我们已经从 Matplotlib 导入了颜色为 mcolors,并且我们定义了我们的自定义函数 colors

colors() 函数使用颜色值参数调用,该函数返回带有颜色和 alpha 参数的 to_rgba() 方法。

def colors(arg):
    return mcolors.to_rgba(arg, alpha=0.6)
poly = PolyCollection(verts, facecolors=[colors('r'), colors('g'), colors('b'),
                                         colors('y')])

这只是三个维度的数据点的限制或范围。

axes.set_xlim3d(0, 10)
axes.set_ylim3d(-1, 4)
axes.set_zlim3d(0, 1)

完整代码 - 3D 瀑布图:

    from matplotlib.collections import PolyCollection
    import matplotlib.pyplot as plt
    from matplotlib import colors as mcolors
    import numpy as np

    axes=plt.axes(projection="3d")

    def colors(arg):
        return mcolors.to_rgba(arg, alpha=0.6)

    x1 = np.arange(0, 10, 0.4)
    verts = []
    z1 = [0.0, 1.0, 2.0, 3.0]
    for z in z1:
        y1 = np.random.rand(len(x1))
        y1[0], y1[-1] = 0, 0
        verts.append(list(zip(x1, y1)))

    poly = PolyCollection(verts, facecolors=[colors('r'), colors('g'), colors('b'),
                                             colors('y')])
    poly.set_alpha(0.7)
    axes.add_collection3d(poly, zs=z1, zdir='y')

    axes.set_xlabel('X')
    axes.set_xlim3d(0, 10)
    axes.set_ylabel('Y')
    axes.set_ylim3d(-1, 4)
    axes.set_zlabel('Z')
    axes.set_zlim3d(0, 1)
    axes.set_title("3D Waterfall plot")

    plt.show()

输出:

Matplotlib 3D 瀑布图

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便