第一章
画线用plt.plot()
import matplotlib.pyplot as plt import numpy as np data=np.array([1,2,3,4,5])//数组元素属于y值,x值自动从0开始。 plt.plot(data) plt.show()
import matplotlib.pyplot as plt plt.plot([1,2,3,4],[-4,-3,-2,-1]) plt.show()
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]])
plt.plot(arr[0], arr[1:]) //数组0作为x,数组1以后的作为y值
第二章
2.1折线图 用plt.plot() 综合应用
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
arr=np.array([33,54,33,77,99])
arr1=np.array([13,99,15,77,5])
x=np.arange(5)
plt.figure(figsize=(20,9))#窗口大小
plt.title('时间速度演化图',fontsize=23)
plt.xlabel('时间',fontsize=23)
plt.ylabel('速度',fontsize=23)
plt.text(x[1],arr1[1],'(x1,arr1)',fontsize=29)
plt.legend()
plt.plot(x,arr,'r-.',label="one",lw=9)
plt.plot(x,arr1,'bo-.',lw=9)
plt.savefig('./3.jpg')
x = np.arange(4, 19) y_max = np.array([32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31]) y_min = np.array([19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16]) plt.plot(x,y_max,x,y_min,'bo--')
2.2用bar()画柱状图
x=np.arange(7) y1=np.array([34,67,66,99,55,12,11]) plt.bar(x,y1,tick_label=['a','b','c','d','e','f','g'],width=0.5)//标签tick_label
x=np.arange(7) err=[4,5,7,3,9,3,8] y1=np.array([34,67,66,99,55,12,11]) y2=np.array([11,67,88,22,77,12,86]) plt.bar(x,y1,tick_label=['a','b','c','d','e','f','g'],width=0.3) plt.bar(x,y2,bottom=y1,width=0.3,yerr=err)//y1在下面,宽度,误差棒
2.3 barh()绘制侧向柱状图
y = np.arange(5) x1 = np.array([10, 8, 7, 11, 13]) x2 = np.array([9, 6, 5, 10, 12]) plt.barh(y,x1,tick_label=['a','b','c','d','e'],height=0.3)//注意x,y顺序。 plt.barh(y+0.3,x2,height=0.3)//在y上移动宽度的位置。
y = np.arange(5) x1 = np.array([10, 8, 7, 11, 13]) x2 = np.array([9, 6, 5, 10, 12]) err = [2, 1, 2.5, 2, 1.5] plt.barh(y,x1,tick_label=['a', 'b', 'c', 'd', 'e'],height=0.3) plt.barh(y,x2,left=x1,height=0.3,xerr=err)//确定左右关系,加误差棒
2.4堆积图stackplot(x,y)绘制
x = np.arange(6) y1 = np.array([1,4,3,5,6,7]) y2 = np.array([1,3,4,2,7,6]) y3 = np.array([3,4,3,6,5,5]) plt.stackplot(x,y1,y2,y3)
2.5饼状图的绘制 plt.pie(data,label,%3.lf,shadow,distance,begainangel)
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import random
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
kinds=['购物','人情往来','餐饮美食','通讯物流','生活日用','交通出行','休闲娱乐','其他']
money_scale=[800/3000,100/3000,1000/3000,200/3000,300/3000,200/3000,200/3000,200/3000]
dev_position=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
plt.pie(money_scale,labels=kinds,autopct='%3.1f%%',shadow=True,
explode=dev_position,startangle=90)
plt.show()
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import random
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
kinds=['购物','人情往来','餐饮美食','通讯物流','生活日用','交通出行','休闲娱乐','其他']
money_scale=[800/3000,100/3000,1000/3000,200/3000,300/3000,200/3000,200/3000,200/3000]
dev_position=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
plt.pie(money_scale,radius=1.5,wedgeprops={'width':0.7 },labels=kinds,
autopct='%3.1f%%',shadow=True,
explode=dev_position,startangle=90,pctdistance=0.75)
plt.show()
2.6绘制气泡图,散点图。plt.scatter(x,y,s=area)
import numpy as np num=50 x=np.random.rand(num) y=np.random.rand(num) area=(30*np.random.rand(num)**2) plt.scatter(x,y,s=area)
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np num=60 x=np.random.rand(num) y=np.random.rand(num) area=(30*np.random.rand(num))**2 plt.scatter(x,y,s=area)
27绘制箱状图。boxlplot()
import matplotlib.pyplot as plt
import numpy as np
data=np.random.randn(100)
plt.boxplot(data,meanline=True,widths=0.3,patch_artist=True,
showfliers=False)
plt.show()
2.8雷达图。polar()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family']='SimHei'
plt.rcParams['axes.unicode_minus']=False
dim_num=6
data=np.array([[0.04,0.32,0.35,0.30,0.30,0.88],
[0.85,0.35,0.30,0.40,0.40,0.30],
[0.43,0.89,0.30,0.28,0.22,0.30],
[0.30,0.25,0.48,0.85,0.45,0.40],
[0.20,0.38,0.87,0.45,0.32,0.28],
[0.34,0.31,0.38,0.40,0.92,0.28]])
angles=np.linspace(0,2*np.pi,dim_num,endpoint=False)
angles=np.concatenate((angles,[angles[0]]))
data=np.concatenate((data,[data[0]]))
rradar_labels=['研究型(I)','艺术型(A)','社会型(S)','企业型(E)','传统型(C)','社会型(R)']
radar_labels=np.concatenate((radar_labels,[radar_labels[0]]))
plt.polar(angles,data)
plt.thetagrids(angles*180/np.pi,labels=radar_labels)
plt.fill(angles,data,alpha=0.25)
plt.show()
2.9绘制误差棒
plt.errorbar()
x=np.arange(5) y=(25,32,34,20,25) y_offset=(3,5,2,3,3) plt.errorbar(x,y,y_offset,capsize=3,capthick=2) plt.show()
第三章



