python学习part 6:通过numpy和matplotlib.pyplot作图

python学习part 6:通过numpy和matplotlib.pyplot作图

#普通曲线图
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5,5,50) #随机从-5到5之间的50个数
y1=x**3
y2=2*x+3
plt.plot(x,y1,label='y1=x**3')#label指对曲线图或函数图的一种表示,但需要加plt.length(),后面可见
plt.plot(x,y2,label='y2=2*x+3')
plt.xlabel('I am x')#xlable指x轴的标题
plt.ylabel('I am y')#ylable指y轴的标题
plt.title('Just do it')#大标题
plt.plot(x,y2,color='pink',linewidth=5,linestyle='--')#对线性图像进行修饰,color,linewidth,linestyle
plt.legend()#label可见
plt.show()#显示

#折线图
import matplotlib.pyplot as plt
import numpy as np
y1=[1,6,18,27,7,2]#指定几个点
x1=range(0,6)
x2=range(0,10)
y2=[0,17,5,40,30,55,75,15,50,26]
plt.plot(x2,y2,label='line1',color='g',marker='*',markerfacecolor='pink',markersize=10)#color指定颜色,marker是标志(常用 * , ^ , _ , + )
plt.plot(x1,y1,label='line2',color='r')
plt.xlabel('I am x')
plt.ylabel('I am y')
plt.title('Slight Line')
plt.legend()
plt.show()

#子图
t = np.linspace(-5, 5, 50)   #numpy数组生成50个数字
s1 = np.sin(np.pi*t)#np.sin指调用sin函数,pi*t指一个常量
s2 = np.sin(np.pi*t)
plt.figure(1)
plt.subplot(211) #设置子图subplot()
plt.plot(t, s1)
plt.grid(color='r',linestyle='--',linewidth=1,alpha=1)#plt.grid指画格子
plt.subplot(212)
plt.plot(t, s1)
plt.grid(color='r',linestyle='--',linewidth=1,alpha=0.3)
plt.show()

#饼图
label='happy','outstanding','love','learning'#建造区域名称
sizes=[10,50,5,35]#设置区域比例
fig1,ax1=plt.subplots()#设置子图,一定需要两个变量进行分割
ax1.pie(sizes,labels=label,autopct='%1.0f%%',startangle=90)#这里是labels不是label,autopct是百分比,startangle是指初始角度
ax1.axis('equal')#相等的长宽比可以将饼图置位圆形
plt.show()

#散点图
x=np.random.random(30)#随机点
y=np.random.random(30)
colors=np.random.random(30)#随机颜色
area=(50*np.random.random(30))
plt.scatter(x,y)#必须有这句,为了使c=color
plt.show()

#条形统计图
y = [20, 30, 15, 35]      
x = range(len(y))      
"""
绘制条形图
width:长条形宽度默认值0.8
"""
rects = plt.bar(x, y, width=0.4 , label="1")  
plt.xlabel("I'm X")
plt.ylabel("I'm Y")
plt.title("I'm title")
"""
设置x轴刻度显示值
参数一:中点坐标
参数二:显示值
"""
labels = ['One', 'Two', 'Three', 'Four']    # 横坐标刻度显示值
plt.xticks(x, labels)#label所在坐标

"""
给直方图添加数据标签
参数一:数字说明的横坐标
参数二:数字说明的纵坐标
参数三:数字显示
参数四:垂直对齐方式
参数五:水平对齐方式
"""
for rect in rects:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="top")#va可以为top和bottom
plt.legend()   
plt.show()

附上每种图形的效果图
1.曲线图
在这里插入图片描述
2.折线图
在这里插入图片描述
3.子图
在这里插入图片描述
4.饼图
在这里插入图片描述
5.散点图
在这里插入图片描述
6.条形图
在这里插入图片描述
其中条形图是我们常用的数据对比图
注意:两段条形图的x轴坐标与宽度是制作好条形对比图的关键

import matplotlib.pyplot as plt
import numpy as np
y1=[20, 30, 15, 35]      
x1=[0.5,2,3.5,5]   
y2=[10, 20, 15, 25]      
x2=[1,2.5,4,5.5] 
x3=[0.75,2.25,3.75,5.25]  
rects1=plt.bar(x1,y1,width=0.5,label="1") 
rects2=plt.bar(x2,y2,width=0.5,label='2')
plt.xlabel("I'm X")
plt.ylabel("I'm Y")
plt.title("IT")
labels = ['One','Two','Three','Four']
plt.xticks(x3,labels)
for rect in rects1:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="bottom")
for rect in rects2:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="bottom")
plt.legend()
plt.show()

在这里插入图片描述
Ending!

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值