一.Matplotlib的基础知识html
Matplotlib中的基本图表包括的元素dom
import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame
包含单条曲线的图ide
注意:y,x轴的值必须为数字svg
x=[1,2,3,4,5] y=[2,4,6,8,10] plt.plot(x,y)
抛物线函数
x = np.linspace(-np.pi,np.pi,num=20) y = x**2 plt.plot(x,y)
正弦曲线字体
x y = np.sin(x) plt.plot(x,y)
包含多个曲线的图this
一、连续调用屡次plot函数spa
plt.plot(x,y)
plt.plot(x+2,y+3)
二、也能够在一个plot函数中传入多对X,Y值,在一个图中绘制多个曲线code
plt.plot(x,y,x+1,y-2)
将多个曲线图绘制在一个table区域中:对象形式建立表图orm
a=plt.subplot(row,col,loc) 建立曲线图
a.plot(x,y) 绘制曲线图
ax1 = plt.subplot(221) ax1.plot(x,y) ax2 = plt.subplot(2,2,2) ax2.plot(x,y) ax3 = plt.subplot(2,2,3) ax3.plot(x,y) ax4 = plt.subplot(2,2,4) ax4.plot(x,y)
网格线 plt.gride(XXX)
参数:
- axis
- color:支持十六进制颜色
- linestyle: -- -. :
- alpha
plt.plot(x,y) plt.grid(axis='both',c='blue')
绘制一个正弦曲线图,并设置网格
plt.plot(x,y,c='red',alpha=0.7)
坐标轴界限
#axis方法:设置x,y轴刻度值的范围 plt.axis([xmin,xmax,ymin,ymax])
plt.plot(x,y) plt.axis([-6,6,-2,2]) #plt.axis('off')
plt.axis('off') 关闭坐标轴
设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍
plt.figure(http://localhost:8889/notebooks/oldBoy%E6%95%B0%E6%8D%AE%E6%8E%88%E8%AF%BE%202/part_5/matplotlib.ipynb#%E8%AE%BE%E7%BD%AE%E7%94%BB%E5%B8%83%E6%AF%94%E4%BE%8B%EF%BC%9Aplt.figure(figsize=(a,b))-a:x%E5%88%BB%E5%BA%A6%E6%AF%94%E4%BE%8B---b%EF%BC%9Ay%E5%88%BB%E5%BA%A6%E6%AF%94%E4%BE%8B--%EF%BC%882:1%EF%BC%89%E8%A1%A8%E7%A4%BAx%E5%88%BB%E5%BA%A6%E6%98%BE%E7%A4%BA%E4%B8%BAy%E5%88%BB%E5%BA%A6%E6%98%BE%E7%A4%BA%E7%9A%842%E5%80%8Dfigsize=(6,6)) plt.plot(x,y)
坐标轴标签
s 标签内容
color 标签颜色
fontsize 字体大小
rotation 旋转角度
plt.plot(x,y) plt.xlabel('aaa') plt.ylabel('bbb') plt.title('ccc')
图例
两种传参方法:
plt.plot(x,y,label='aaa') plt.plot(x+2,y+3,label='bbb') plt.legend(loc=0,ncol=2)
- loc参数
- ncol参数
ncol控制图例中有几列,在legend中设置ncol
保存图片
使用figure对象的savefig函数来保存图片
fig = plt.figure()---必须放置在绘图操做以前
figure.savefig的参数选项
fig = plt.figure() plt.plot(x,y,label='aaa') plt.plot(x+2,y+3,label='bbb') plt.legend(loc=0,ncol=2) fig.savefig('./123.png',dpi=500)
设置plot的风格和样式
plot语句中支持除X,Y之外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
plt.plot(X, Y, 'format', ...)
参数color或c
颜色 | 别名 | HTML颜色名 | 颜色 | 别名 | HTML颜色名 |
---|---|---|---|---|---|
蓝色 | b | blue | 绿色 | g | green |
红色 | r | red | 黄色 | y | yellow |
青色 | c | cyan | 黑色 | k | black |
洋红色 | m | magenta | 白色 | w | white |
alpha参数
参数linestyle或ls
线条风格 | 描述 | 线条风格 | 描述 |
---|---|---|---|
'-' | 实线 | ':' | 虚线 |
'--' | 破折线 | 'steps' | 阶梯线 |
'-.' | 点划线 | 'None' / ',' | 什么都不画 |
plt.plot(x,y,ls='steps',lw=10)
linewidth或lw参数
标记 | 描述 | 标记 | 描述 |
---|---|---|---|
's' | 正方形 | 'p' | 五边形 |
'h' | 六边形1 | 'H' | 六边形2 |
'8' | 八边形 |
标记 | 描述 | 标记 | 描述 |
---|---|---|---|
'.' | 点 | 'x' | X |
'*' | 星号 | '+' | 加号 |
',' | 像素 |
标记 | 描述 | 标记 | 描述 |
---|---|---|---|
'o' | 圆圈 | 'D' | 菱形 |
'd' | 小菱形 | '','None',' ',None | 无 |
标记 | 描述 | 标记 | 描述 |
---|---|---|---|
'1' | 一角朝下的三脚架 | '3' | 一角朝左的三脚架 |
'2' | 一角朝上的三脚架 | '4' | 一角朝右的三脚架 |
plt.plot(x,y,marker='d',markersize=10)
# 绘制线 plt.plot(x1,y1,x2,y2) # 网格线 plt.grid(True) axes.grid(color,ls,lw,alpha) # 获取坐标系 plt.subplot(n1,n2,n3) # 坐标轴标签 plt.xlabel() plt.ylabel() # 坐标系标题 plt.title() # 图例 plt.legend([names],ncol=2,loc=1) plt.plot(label='name') # 线风格 -- -. : None step # 图片保存 figure.savefig() # 点的设置 marker markersize markerfacecolor markeredgecolor\width # 坐标轴刻度 plt.xticks(刻度列表,刻度标签列表) plt.yticks() # axes.set_xticks(刻度列表) axes.set_xticklabels(刻度标签列表)
二.2D图形
【直方图的参数只有一个x!!!不像条形图须要传入x,y】
plt.hist()的参数
data = [1,2,3,3,4,2,5]
plt.hist(data,bins=10)
返回值 :
1: 直方图向量,是否归一化由参数normed设定
2: 返回各个bin的区间范围
3: 返回每一个bin里面包含的数据,是一个list
-【条形图有两个参数x,y】
bar()、barh()
num = [1,2,3,4,5] count = [2,4,6,8,10] plt.barh(num,count)
barh()
【饼图也只有一个参数x】
pie()
饼图适合展现各部分占整体的比例,条形图适合比较各部分的大小
普通各部分占满饼图
普通未占满饼图:小数/比例
饼图阴影、分裂等属性设置 #labels参数设置每一块的标签; #labeldistance参数设置标签距离圆心的距离(比例值) #autopct参数设置比例值小数保留位(%.3f%%); #pctdistance参数设置比例值文字距离圆心的距离 #explode参数设置每一块顶点距圆心的长度(比例值,列表); #colors参数设置每一块的颜色(列表); #shadow参数为布尔值,设置是否绘制阴影 #startangle参数设置饼图起始角度
【散点图须要两个参数x,y,但此时x不是表示x轴的刻度,而是每一个点的横坐标!】
scatter()
x = np.random.randint(0,10,size=(20,))
y = np.random.randint(0,10,size=(20,))
plt.scatter(x,y,marker='d',c="rbgy") 设置不一样的散点颜色
plt.scatter(x,y,c='rgyb')
x = [1,2,3,4,5] y = [2,4,6,8,10] plt.scatter(x,y)