matplotlib绘制图表

具体知识点全在代码注释中

绘制柱状图  饼状图 直方图  等高线  三维图

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()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值