Python基础 — Matplotlib
Matplotlib -- 简介
matplotlib是Python优秀的数据可视化第三方库;
matplotlib库的效果可参考官网:http://matplotlib.org/gallery.html ;
matplotlib的使用 由各种可视化类构成,内部结构复杂,受matlab库启发,matplotlab.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式。
matplotlib可以绘制的图
Matplotlib -- 绘图函数
1、plot函数
plt.plot(x,y,format_string,**kwargs)
参数:
x:X轴数据,列表或数组,可选;
y:Y轴数据,列表或数组;
format_string:控制曲线的格式字符串,由颜色字符、风格字符和标识字符组成,可选;
**kwargs:第二组或更多的(x,y,format_string,**kwargs);
2、subplot()函数
plt.subplot(numRows, numCols, plotnum)
参数:
numRows : int ,指创建的sublots的行数,默认为1 ;
numCols : int ,指创建的sublots的列数,默认为1;
plotnum:指定操作的区域;
3、Matplotlib.pyplot常用的方法
方法 | 描述 |
---|---|
plt.savefig('filename',dpi=n) | 将绘制的图画保存成png格式,并设置分辨率,默认为100; |
plt.axis([0,9,1,8]) | x轴起始于0,终止于9 ,y轴起始于1,终止于8 |
plt.subplot(Rows, Cols, plotnum) | 分成Rows行Clos列,共R*C个绘图区域,在第plotnum个区域绘图。排序为行优先。 |
plt.xlabel() | 对x轴增加文本标签 |
plt.ylabel() | 对y轴增加文本标签 |
plt.title() | 对图形整体增加文本标签 |
plt.text() | 在任意位置增加文本 |
Matplotlib -- 画图种类
1、折线图(grid)
# 绘制折线图
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(9)
y = np.sin(x)
z = np.cos(x)
# marker数据点样式,linewidth线宽,linestyle线型样式,color颜色
plt.plot(x, y, marker="*", linewidth=3, linestyle="--", color="orange")
plt.plot(x, z)
plt.title("matplotlib")
plt.xlabel("height")
plt.ylabel("width")
# 设置图例
plt.legend(["Y","Z"], loc="upper right")
plt.grid(True)
plt.show()
2、条形图(bar)
#绘制条形图
x = np.arange(10)
y = np.random.randint(0,30,10)
plt.bar(x, y)
plt.show()
3、饼图(pie)
#绘制饼图
plt.figure(figsize=(10,10));
x = [4, 9, 21, 55, 30, 18]
labels = ['Swiss', 'Austria', 'Spain', 'Italy', 'France', 'Benelux']
explode = [0.2, 0.1, 0, 0, 0.1, 0]
plt.pie(x, labels=labels, explode=explode, autopct='%1.1f%%');
plt.show()
4、散点图(scatter)
#绘制散点图
x = np.random.rand(10)
y = np.random.rand(10)
plt.scatter(x,y)
plt.show()
5、直方图(hist)
#绘制直方图
mean, sigma = 0, 1
x = mean + sigma * np.random.randn(10000)
plt.hist(x,50)
plt.show()
6、坐标图(plot)
#绘制坐标图
import matplotlib.pyplot as plt
import numpy as np
#创建数据
x = np.linspace(-5, 5, 100)
y1 = np.sin(x)
y2 = np.cos(x)
#创建figure窗口
plt.figure(num=3, figsize=(8, 5))
#画曲线1
plt.plot(x, y1)
#画曲线2
plt.plot(x, y2, color='red', linewidth=5.0, linestyle='--')
#设置坐标轴范围
plt.xlim((-5, 5))
plt.ylim((-2, 2))
#设置坐标轴名称
plt.xlabel('xxxxxxxxxxx')
plt.ylabel('yyyyyyyyyyy')
#设置坐标轴刻度
my_x_ticks = np.arange(-5, 5, 0.5)
my_y_ticks = np.arange(-2, 2, 0.2)
plt.xticks(my_x_ticks)
plt.yticks(my_y_ticks)
#显示出所有设置
plt.show()
7、子图(subplot)
# figsize绘图对象的宽度和高度,单位为英寸,dpi绘图对象的分辨率,即每英寸多少个像素,缺省值为80
plt.figure(figsize=(8,6),dpi=100)
# subplot(numRows, numCols, plotNum)
# 一个Figure对象可以包含多个子图Axes,subplot将整个绘图区域等分为numRows行*numCols列个子区域,按照从左到右,从上到下的顺序对每个子区域进行编号
# subplot在plotNum指定的区域中创建一个子图Axes
A = plt.subplot(2,2,1)
plt.plot([0,1],[0,1], color="red")
plt.subplot(2,2,2)
plt.title("B")
plt.plot([0,1],[0,1], color="green")
plt.subplot(2,1,2)
plt.title("C")
plt.plot(np.arange(10), np.random.rand(10), color="orange")
# 选择子图A
plt.sca(A)
plt.title("A")
plt.show()
Matplotlib -- 作图线的属性
颜色(color 简写为 c):
颜色 | 字符 |
---|---|
红色 | 'r' (red) |
蓝色 | 'b' (blue) |
绿色 | 'g' (green) |
黄色 | 'y' (yellow) |
黑色 | 'k' (black) |
白色 | 'w' (white) |
紫色 | 'm' (magenta) |
青色 | 'c' (cyan) |
灰色 | [0,1]内任意浮点数 |
RGB表示法 | '#2F4F4F' 或 (0.18, 0.31, 0.31) |
线型(linestyle 简写为 ls):
线型 | 字符 |
---|---|
点 | '.' |
点线 | ':' |
点画线 | '-.' |
实线 | '-' |
虚线 | '--' |
图形标记(标记marker):
形状 | 字符 |
---|---|
圆形 | 'o' |
加号 | '+' |
星形 | '*' |
乘号 | 'x' |
方形 | 's' |
菱形 | 'D' |
作者:ls秦
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.