《Python实现数据可视化》创建3D直方图

虽然matplotlib主要专注于绘图,并且主要是二维的图形,但是它也有一些不同的扩展,能让我们在地理图上绘图,让我们把Excel和3D图表结合起来。在matp

大家好,今天来为大家分享《Python实现数据可视化》创建3D直方图的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

本节将探讨有关mplot3d 的更多功能。 mpl_toolkits.mplot3 工具包提供了一些基本的3D 绘图功能。它支持的图表类型包括散点图(scatter)、曲面图(surf)、线图(line)和网格图(mesh)。虽然mplot3d 不是最好的3D 图形绘制库,但它是与matplotlib 一起产生的,因此我们已经熟悉它的界面。

准备工作

基本上,我们仍然需要创建一个图表并向其中添加所需的轴。但不同的是,我们为图表指定了3D视图,并且添加的坐标轴是Axes3D。

现在我们可以使用几乎相同的函数进行绘图。当然,函数的参数不同,需要提供3个轴的数据。

例如,我们要为函数mpl_toolkits.mplot3d.Axes3D.plot 指定xs、ys、zs 和zdir 参数。其他参数直接传递给matplotlib.axes.Axes.plot。下面解释这些具体参数。

1. xs和ys:x轴和y轴坐标。

2. zs:这是z轴的坐标值。可以是所有点对应的值,也可以是每个点对应的值。

3. zdir:确定使用哪个坐标轴作为z轴维度(通常是zs,但也可以是xs或ys)。

提示:模块mpl_toolkits.mplot3d.art3d 包含3D 艺术家代码和将2D 艺术家转换为3D 版本的函数。该模块中有一个rotate_axes方法,可以添加到Axes3D中以重新排序坐标,以便轴与zdir一起旋转。 zdir 的默认值为z。在坐标轴前添加’“-“’将反转变换,因此zdir的值可以是x、-x、y、-y、z或-z。

操作步骤

以下代码演示了我们已经解释过的概念。

导入randomimport numpy 作为np导入matplotlib 作为mplimport matplotlib.pyplot 作为plt导入matplotlib.dates 作为mdatesfrom mpl_toolkits.mplot3d 导入Axes3Dmpl.rcParams[‘font.size’]=10fig=plt.figure()ax=Fig.add_subplot(111, 投影=’3d’)for z in [2011,2012,2013,2014]: xs=xrange(1,13) ys=1000 * np.random.rand(12) color=plt.cm.Set2(random.choice(xrange) (plt.cm.Set2.N))) ax.bar(xs, ys, zs=z, zdir=’y’, color=color, alpha=0.8)ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs) ))ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))ax.set_xlabel(‘月’)ax.set_ylabel(‘年’)ax.set_zlabel(‘销售净额[美元]’)plt.show()上述代码生成如图5-1 所示的图表。

图5-1

《Python实现数据可视化》创建3D直方图

工作原理

我们需要做与2D世界中相同的准备工作。不同的是,你需要在这里指定后端的类型。然后生成一些随机数据,例如4年(2011-2014)的销售额。

我们需要为3D 轴指定相同的Z 值。

从颜色图集中随机选择一种颜色,并将其与每个Z 顺序集的xs、ys 对相关联。最后,使用xs、ys 对来渲染条形序列。

补充说明

此处还可以使用其他一些matplotlib 2D 绘图函数。例如,scatter() 和plot() 具有类似的接口,但具有附加的点标记大小参数。我们也非常熟悉contour、contourf和bar。

仅以3D 形式出现的新图表类型包括线框、曲面和三面图。

在下面的示例代码中,我们绘制了著名的Pringle 函数的三翼图,该函数在数学上称为双曲抛物面。

from mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cmimport matplotlib.pyplot as pltimport numpy as npn_angles=36n_radii=8# 半径数组# 不包括半径r=0,这是为了消除重复点radii=np.linspace(0.125, 1.0, n_radii)# 角度数组angles=np.linspace(0, 2 * np.pi, n_angles, endpoint=False)# 重复每个半径的所有角度angles=np.repeat(angles[. np.newaxis], n_radii , axis=1)# 将极坐标(半径、角度)坐标转换为笛卡尔(x, y)坐标# 这里添加(0, 0)。 (x, y)planex=np.append( 0, (radii * np.cos(angles)).flatten())y=np.append(0, (radii * np.sin(角度)).flatten())# Pringle 曲面z=np.sin(-x * y)fig=plt.figure()ax=Fig.gca(projection=’3d’)ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)plt.show()上述代码生成如图5-2所示的图形。

图5-2

内容简介:本书是一本使用Python实现数据可视化编程的实用指南。介绍了如何使用Python最流行的库通过60多种方法创建漂亮的数据可视化效果。

本书共8章,内容涵盖工作环境准备、理解数据、绘制和定制图表、学习更多图表和定制、创建3D可视化图表、用图像和地图绘制图表、使用正确的图表理解数据等了解matplotlib。

本书适合有一定Python编程基础的开发者。它可以帮助读者从头开始理解数据、数据格式和数据可视化,并学习使用Python来可视化数据。

用户评论

《Python实现数据可视化》创建3D直方图
念安я

感觉这篇文章写的真好!我一直想要用 Python 来画出 3D 柱状图,可是一直找不到合适的教程。感谢作者分享这个方法!我早速试了一下,效果真不错!

    有19位网友表示赞同!

《Python实现数据可视化》创建3D直方图
冷嘲热讽i

Python 实现数据可视化,尤其是 3D 柱状图,确实很棒啊!以前都是用的 Excel 做图表,看着太平面了。这篇教程详细易懂,相信很多跟我一样想学习 Python 可视化的朋友都能上手!

    有18位网友表示赞同!

《Python实现数据可视化》创建3D直方图
酒笙倾凉

我以前学过 Matplotlib 的基础用法,但怎么实现 3D 图我还是不太清楚。这本书讲的太好了,图文并茂,加上示例代码,终于让我入门了!希望以后也能学到更多高级的可视化技巧。

    有14位网友表示赞同!

《Python实现数据可视化》创建3D直方图
赋流云

这个教程太棒了,之前我试过用其他库做 3D 柱状图,但效果都不理想。这次使用 Python 的方法,可视化的效果简直没话说!

    有6位网友表示赞同!

《Python实现数据可视化》创建3D直方图
容纳我ii

数据可视化确实一个好工具,可以更直观地展示数据背后的趋势和规律。但我总觉得这篇文章的代码示例有点过于基础,希望能提供一些更复杂、更加实用的 3D 柱状图案例。

    有8位网友表示赞同!

《Python实现数据可视化》创建3D直方图
发呆

我感觉Python实现 3D 图有点难度,需要学习很多新的库和函数,可能对初学者不太友好。希望作者能写一些针对新手用户的入门教程.

    有7位网友表示赞同!

《Python实现数据可视化》创建3D直方图
命硬

我一直想尝试用 Python 做数据可视化,但是看到这么多代码还是头脑发懵,不知道从哪里下手。能不能提供一些更易于理解的讲解?

    有12位网友表示赞同!

《Python实现数据可视化》创建3D直方图
浅巷°

其实 3D 柱状图在很多情况下并不合适,因为容易显得杂乱无法区分。我觉得这篇文章应该多提一些数据的处理和可视化技巧,而不是只关注实现方法本身。

    有19位网友表示赞同!

《Python实现数据可视化》创建3D直方图
景忧丶枫涩帘淞幕雨

这个教程介绍的方法很不错,实现了漂亮的 3D 柱状图效果!感觉 Python 数据可视化真的太好玩了,下一步我要学习新的库和功能,尝试更酷炫的图表类型!

    有5位网友表示赞同!

《Python实现数据可视化》创建3D直方图
娇眉恨

我一直觉得做数据可视化需要美观和直观性。我觉得文章可以分享一些关于配色、字体选择以及布局设计方面的技巧,让 3D 柱状图看起来更加精致。

    有9位网友表示赞同!

《Python实现数据可视化》创建3D直方图
白恍

文章内容不错,代码清晰易懂。不过我认为在教学过程中更应该强调对数据的理解,而不是仅仅把实现过程步骤讲完。数据可视化的本质还是在于讲述故事和传达信息!

    有11位网友表示赞同!

《Python实现数据可视化》创建3D直方图
没过试用期的爱~

我尝试了一下这个教程中的代码,但是运行时出现了几个错误。可能是我的 Python 环境配置有问题吧?希望作者能在这篇文章下回复一下常见的错误解决方案。

    有13位网友表示赞同!

《Python实现数据可视化》创建3D直方图
旧爱剩女

用Python实现 3D 柱状图确实很有意思,可以更方便地展示数据结构和变化趋势。但 3D 图形可能对硬件要求比较高,需要注意运行速度的问题!

    有20位网友表示赞同!

《Python实现数据可视化》创建3D直方图
闲肆

这篇文章写的太棒了!让我终于明白了如何利用 Python 来创建漂亮的 3D 柱状图!之前我一直想做这个,现在终于实现的目标!

    有7位网友表示赞同!

《Python实现数据可视化》创建3D直方图
无望的后半生

我感觉文章里缺少一些关于数据处理部分的内容,例如如何清洗、转换和分组数据。这些基础操作对于最终的可视化效果也至关重要。

    有11位网友表示赞同!

《Python实现数据可视化》创建3D直方图
一纸愁肠。

Python 实现数据的可视化工具确实很多,但还是要选择适合自己需求的库。这篇文章介绍的这个方法很有特色,感觉可以尝试一下!

    有17位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/107922.html

(0)
小su's avatar小su
上一篇 2024年8月30日 上午11:27
下一篇 2024年8月30日 上午11:30

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注