美文网首页数据可视化郭志敏的程序员书屋
【Python实现数据可视化】创建3D柱状图

【Python实现数据可视化】创建3D柱状图

作者: 54b59ee78c42 | 来源:发表于2015-05-20 14:05 被阅读16042次

虽然matplotlib主要专注于绘图,并且主要是二维的图形,但是它也有一些不同的扩展,能让我们在地理图上绘图,让我们把Excel和3D图表结合起来。在matplotlib的世界里,这些扩展叫做工具包(toolkits)。工具包是一些关注在某个话题(如3D绘图)的特定函数的集合。

比较流行的工具包有Basemap、GTK 工具、Excel工具、Natgrid、AxesGrid和mplot3d。

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

准备工作

基本来讲,我们仍然需要创建一个图表并把想要的坐标轴添加到上面。但不同的是我们为图表指定的是3D视图,并且添加的坐标轴是Axes3D

现在,我们可以使用几乎相同的函数来绘图了。当然,函数的参数是不同的,需要为3个坐标轴提供数据。

例如,我们要为函数mpl_toolkits.mplot3d.Axes3D.plot指定xsyszszdir参数。其他的参数则直接传给matplotlib.axes.Axes.plot。下面来解释一下这些特定的参数。

1.xsys:x轴和y轴坐标。

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

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

提示:模块mpl_toolkits.mplot3d.art3d包含了3D artist代码和将2D artists转化为3D版本的函数。在该模块中有一个rotate_axes方法,该方法可以被添加到Axes3D中来对坐标重新排序,这样坐标轴就与zdir一起旋转了。zdir默认值为z。在坐标轴前加一个'``-``'会进行反转转换,这样一来,zdir的值就可以是x-xy-yz或者-z

操作步骤

以下代码演示了我们所解释的概念。

import random

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

from mpl_toolkits.mplot3d import Axes3D

mpl.rcParams['font.size'] = 10

fig = plt.figure()
ax = fig.add_subplot(111, projection='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('Month')
ax.set_ylabel('Year')
ax.set_zlabel('Sales Net [usd]')

plt.show()

上述代码生成如图5-1所示的图表。

Python数据可视化编程实战

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

全书共8章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建3D可视化图表、用图像和地图绘制图表、使用正确的图表理解数据以及更多的matplotlib知识。

本书适合那些对Python编程有一定基础的开发人员阅读,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用Python可视化数据。

点此购买:http://item.jd.com/11676691.html

相关文章

网友评论

本文标题:【Python实现数据可视化】创建3D柱状图

本文链接:https://www.haomeiwen.com/subject/gcvlqttx.html