具体知识点全在代码注释中
绘制柱状图 饼状图 直方图 等高线 三维图
import matplotlib.pyplot as plt
plt.plot
plt.plot([1,4],[2,8]) #绘制一条线是 先先横坐标 再写纵坐标
plt.show()
'''
使用matplotlib绘制图形时,其中最为常用的场景。一个是画点,一个是画线,pylot的使用方法如下
title 设置图标名称
xlable 设置x轴名称
ylable 设置y轴名称
'''
#绘制折线
x=[1,2,3,4,5]
y=[1,4,9,16,25]
plt.plot(x,y)
plt.show()
#修改线条宽度 设置文字 设置xy轴的名称
#调用plot方法绘制线条
x=[2,3,4,5,6]
y=[4,9,16,25,36]
plt.plot(x,y,linewidth=5)
plt.xlabel("x")
plt.ylabel("y=x^2")
#用来正常显示中文标签
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.title("折线图")
plt.show()
#绘制曲线,其内涵就是通过很多直线近似成曲线
#绘制曲线,其内涵就是通过很多直线近似成曲线
import matplotlib.pyplot as plt
import numpy as np
x=range(-100,100)
y=[i**2 for i in x]
plt.plot(x,y)#保存图片
plt.savefig("01.jpg") #默认是png
plt.show()
#绘制正弦余弦曲线
#生成0,10之间的一百个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
plt.plot(x,sin_y)
cos_y=np.cos(x)
plt.plot(x,cos_y)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,100)
sin_y=np.sin(x)
plt.subplot(2,2,1) #将画布进行区域划分 将画布分为两行两列 #修改x轴y轴的做表
plt.xlim(-5,20)
plt.ylim(-5,20)
plt.plot(x,sin_y) #修改x轴y后做表
plt.subplot(2,2,3)
cos_y=np.cos(x)
plt.plot(x,cos_y)
plt.show()
#使用scatter函数绘制随机点,该函数需要接受x坐标,y坐标的序列
import matplotlib.pyplot as plt
import numpy as np
x =np.linspace(0,10,100)
plt.subplot(2,2,1)
sin_y=np.sin(x) #绘制散点图
plt.scatter(x,sin_y)
plt.subplot(2,2,2)
plt.plot(x,sin_y,'o')
plt.show()
np.random.seed(0) #每次获得的随机数相等
x =np.random.rand(100) #0.0-1.0之间的点
y=np.random.rand(100)
size=np.random.rand(100)*1000
color=np.random.rand(100)
plt.scatter(x,y,s=size,c=color,alpha=0.7)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,100)
#使用legend()图例,给plot方法添加lable
plt.plot(x,x,'--g',label='--g')
plt.plot(x,x+1,'-.r',label='-,r')
plt.plot(x,x+2,':b',label=':b')
plt.plot(x,x+3,'.k',label='.k')
plt.plot(x,x+4,',c',label=',c') # 边框 透明度 阴影 边框宽度
plt.legend(loc='lower right',fancybox=True,framealpha=1,shadow=True,borderpad=1) #默认在左上角 可以用loc进行修改
plt.show()
import matplotlib.pyplot as plt
x=[1998,1999,2000,2001]
y=[1000,2000,3000,4000]
plt.bar(x,y,width=0.6)
#修改x坐标的值
x_label=['1998年','1999年','2000年','2001年']
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.xticks(x,x_label)
plt.xlabel('年份')
plt.ylabel('销量')
#添加标题title
plt.title("根据年份销量对比图")
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
np.random.seed(0)
print(x)
y=np.random.randint(-5,5,5)
print(y)
#将画布分为两个区域
plt.subplot(1,2,1)
#在0位置添加蓝色的线条
bar_color=plt.bar(x,y,color='blue')
plt.axhline(0,color='green')
for bar,height in zip(bar_color,y):
if height<0:
bar.set(color="red")
plt.subplot(1,2,2)
plt.barh(x,y,color='red') #barh 是xy轴调换
plt.axvline(0,color='green')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
#饼状图是通过函数pie进行绘制
man=71351
woman=68187
man_perc=man/(man+woman)
woman_perc=woman/(man+woman)
labels=['男','女']
plt.rcParams["font.sans-serif"]=["SimHei"]
#labels 名称 colors 颜色 explode 分裂 autopct 百分号
paches,texts,autotexts=plt.pie([man_perc,woman_perc],labels=labels,autopct="%0.1f%%")
plt.show()
#绘制直方图
#示例,使用random函数生成1000个正态分布的随机数,使用hist函数绘制这100个随机数的分布状态
import matplotlib.pyplot as plt
import numpy as np
#生成一千个正态分布随机数 normal指定期望和均值的 randn
x=np.random.randn(1000)
plt.hist(x)
plt.show()
x=np.random.normal(0,0.8,1000)
y=np.random.normal(2,0.8,1000)
z=np.random.normal(-1,0.8,1000)
kwargs=dict(bins=10) #alpha 是透明度
plt.hist(x,**kwargs,alpha=0.5)
plt.hist(y,**kwargs,alpha=0.5)
plt.hist(z,**kwargs,alpha=0.5)
plt.show()
#绘制等高线图和三维图
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-10,10,100)
y=np.linspace(-10,10,100)
#计算x y相交的点XY
X,Y=np.meshgrid(x,y)
#计算Z
Z=np.sqrt(X**2,Y**2)
#绘制等高线图
plt.contour(X,Y,Z)
plt.show()
#绘制等高线图和三维图
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-10,10,100)
y=np.linspace(-10,10,100)
#计算x y相交的点XY
X,Y=np.meshgrid(x,y)
#计算Z
Z=np.sqrt(X**2,Y**2)
#绘制等高线图
plt.contour(X,Y,Z)
plt.show()