数据可视化是数据分析的最后一步,只有完成这一步才能把数据的信息清晰明了的传递出来,这一节我们将使用python将最简单的2D图表制作出来。
第三节 数据可视化之Matplotlib 初识(上)
目录
一. Matplotlib简介
二. 绘制折线图

➡ 一.Matplotlib简介
Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。Matplotlib 这个模块很庞大,最常用的是其中一个子模块——pyplot,通常这样导入它:
import matplotlib.pyplot as plt
导入之后就可以利用Matplotlib的pyplot子模块来进行画图了,我们先来画一个三角函数的函数图像看一下效果:
(小贴士:可利用Anaconda进行编程做图,没有安装的小朋友可以关注公众号回复python获取安装包哦)
我们来看一下每一行代码的作用:
- 因为需要用到数组,所以我们需要import numpy, 不了解numpy的同学可以看一下前两节的内容~
- x = np.arange(0, 2 * np.pi, 0.1),这也是前两节所学的内容,目的是导入数组,np.pi 就是 π 的值。这行代码生成的是0到 2π 的数组,步长是 0.1。如果不明白我们把x的值输出一下看一下:
anaconda matplotlib 输出动画_Python数据分析第三节 数据可视化之Matplotlib 初识(上)... - 步长为0.1是为了让每个点的间隔小一点,点的数量多一些,这样画出的图像更加接近真实情况,也更加的平滑。
- y = np.sin(x)。np.sin() 方法是 numpy 中计算正弦函数的方法,我们将 x 的值传进去就得到对应的正弦值。
- 有了 x 和 y 的值之后,将其分别传入 plt.plot() 方法,pyplot 会将其转换成对应的坐标。
- 将这些坐标连成线就得到了函数的图像,最后调用 plt.show() 方法就能将图像显示出来了。
上面的例子是画了一个函数图像,如果我们要同时画两个函数图像呢?
很简单,我们只需要输入两个因变量y的表达式,重复代码即可:
下面的演示是同时画出sin(x)函数和cos(x)函数
代码里面的plt.plot(x, y1, x, y2)也可以一个一个写出来:
plt.plot(x, y1)plt.plot(x, y2)
其实对于每一对 x 和 y,还有一个可选的格式化参数,用来指定线条的颜色、点标记和线条的类型。
x = np.arange(0, 2 * np.pi, 0.1)y1 = np.sin(x)y2 = np.cos(x)plt.plot(x, y1, 'ro--') # 正弦函数图像plt.plot(x, y2, 'b*-.') # 余弦函数图像# 等价于 plt.plot(x, y1, 'ro--', x, y2, 'b*-.')plt.show()
生成的图下如下:
图像的样子是由格式化参数决定的,例如正弦函数的格式化参数'ro--',r代表红色(red),o代表圆点标记,--代表着虚线。所以'ro--'代表线条为红色虚线、坐标点标记为圆点。
下图列出了常用格式化参数的含义:
➡ 二. 绘制折线图
其实学完了前面的内容就已经掌握了做图的基本画法了,只不过要再学习几个python语句罢了
我们还是先来看例子
上面是某商品一周的销量走势。x 轴传入时间,y 轴传入对应的销量,应该不难理解。因为图中有中文,所以需要通过 plt.rcParams['font.family'] = ['arial unicode ms'] 来设置中文字体,否则中文将会乱码。
arial unicode ms是Anaconda 环境里面安装的中文字体,其他环境不一定适用哦~可以通过如下代码来查看所使用环境安装的字体
import matplotlib.font_manager as fmfor font in fm.fontManager.ttflist: print(font.name)
画出多条曲线跟前面讲的同理,只需:
plt.plot(x,y1)plt.plot(x,y2)...
另外介绍一下加图例的方法,在调用 plt.plot() 方法时传入 label 参数,接着调用 plt.legend() 方法显示图例即可。
这样,我们就能一眼看出每条线所对应的商品。我们还可以看到,图例被放在了图表的左上方,图例位置其实是可以设置的,不设置的情况下 matplotlib 会帮你自动找一个合适的位置放置。
如果想自行选择图例位置的话可以通过
plt.legend()
方法的
loc
参数实现,
loc
参数共有如下 11 种方式可供选择:
如果我们想将图例放到右下角就可以这么写:
到这里就结束了吗?不,还没有!我们还可以通过 plt.xlabel() 和 plt.ylabel() 方法来设置 x 轴和 y 轴的标签,还能通过 plt.title() 给图表设置标题。我们来看一下具体用法:
下一节将继续介绍柱状图和饼图的绘制,敬请期待~
?
长按关注公众号
欢迎留言交流