数据分析之 matplotlib 包
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。
官方文档:https://matplotlib.org/api/。
1. 一个基本的例子
import matplotlib.pyplot as plt
import numpy as np
"""
创建两组数据,使用np.linspace定义x:范围是(-3,3),个数是50,将产生一组(-3,3)内均匀分布的50个数;
(x,y1)表示曲线1,
(x,y2)表示曲线2。
"""
x = np.linspace(-3, 3, 50) # 产生一组(-3,3)内均匀分布的 50 个数
y1 = 2 * x + 1
y2 = x ** 2
"""
定义一个图像窗口:编号为3;大小为(8, 5);这两项参数可缺省
"""
plt.figure(num=3, figsize=(8, 5))
"""
使用plt.plot画出(x ,y2)曲线;使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;
曲线的类型(linestyle)为虚线,除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':'
"""
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
plt.plot(x, y2)
"""
使用plt.xlim设置x坐标轴范围:(-1, 2);
使用plt.ylim设置y坐标轴范围:(-2, 3);
使用plt.xlabel设置x坐标轴名称:’I am x’;
使用plt.ylabel设置y坐标轴名称:’I am y’;
"""
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel('I am x')
plt.ylabel('I am y')
"""
我们想要调整坐标轴的刻度的稀疏,这时,就需要使用plt.xticks()或者plt.yticks()来进行调整:
首先,使用np.linspace定义新刻度范围以及个数:范围是(-1,2);个数是5。使用plt.xticks设置x轴刻度:范围是(-1,2);个数是5。
使用plt.yticks设置y轴刻度以及名称:刻度为[-2, -1.8, -1, 1.22, 3];对应刻度的名称为[‘really bad’,’bad’,’normal’,’good’, ‘really good’]
"""
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])
"""
我们的图像坐标轴总是由上下左右四条线组成,我们也可以对它们进行修改:首先,使用plt.gca()获取当前坐标轴信息。使用.spines设置边框。
.set_color 设置边框颜色,为 'none' 的话,默认为白色
.set_position 设置边框位置,位置所有属性:outward,axes,data
使用.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:bottom.(所有位置:top,bottom,both,default,none)
使用.yaxis.set_ticks_position设置y坐标刻度数字或名称的位置:left.(所有位置:left,right,both,default,none)
以 y 轴为例,left 或 right 指的位置是边框(y轴)的位置,边框在哪,对应的 left 和 right 位置就在哪。
比如代码先设置刻度,在最左边,但后来改变了边框位置,刻度位置也随之变了,就是因为left这个位置是取决于边框的
"""
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
# 显示图像
plt.show()

浙公网安备 33010602011771号