数据可视化

一、matplotlib.pyplot绘图相关对象

二、绘图的类型

一、首先要检测环境

 二、导入第三方库

三、不同绘图类型

1、线型图(plot)

(1)图形不变,x轴变 

 (2)绘制平行四边形

(3)同一绘图区域绘制多图

 (4)多区域绘图

(5)综合示例

 2、直方图(hist)

3、条形图 (bar)

4、饼图(pie) 

 5、散点图(scatter)

6、3D图 

一、matplotlib.pyplot绘图相关对象
1、容器类:图(figure)、坐标系(axes)、坐标轴(axis)、刻度(tick)
2、基础类:线(line)、点(marker)、文本(text)、图例(legend)、网格(grid)、标题(title)

二、绘图的类型
1、线形图:plot()
2、直方图:hist()
3、条形图:bar()
4、饼图:pie()
5、散点图:scatter()
6、3D图:from mpl_toolkits.mplt3d import Axes3d
7、动态交互图:pyecharts

一、首先要检测环境
源码:

pip show matplotlib
输出:

Name: matplotlib
Version: 3.5.2
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: PSF
Location: c:\users\administrator\anaconda3\lib\site-packages
Requires: cycler, fonttools, kiwisolver, numpy, packaging, pillow, pyparsing, python-dateutil
Required-by: seaborn
Note: you may need to restart the kernel to use updated packages.
 二、导入第三方库
import matplotlib.pyplot as plt #导入第三方数据可视化库matplotlib中的pyplot绘图模块
import numpy as np                #导入科学计算库,别名为np
三、不同绘图类型
1、线型图(plot)
源码:

#1、线形图:plot()
plt.plot([1,5,-8,7,4]) #默认为y坐标
输出:

(1)图形不变,x轴变 
方法里的点需要用列表或数组描述(用[]),如果只有一组数据表示y坐标(x坐标默认为0,1,2,。。。),如果有两组分别为x和y值,要求x值和y值位数相等
 源码:

#方法里的点需要用列表或数组描述(用[]),如果只有一组数据表示y坐标(x坐标默认为0,1,2,。。。),如果有两组分别为x和y值,要求x值和y值位数相等
plt.plot([1,2,3,5,7],[1,5,-8,7,4])#第一组列表或数组为X坐标,第二组列表或数组为Y坐标
输出:

源码:

plt.plot([5,8,6,3])
plt.xlabel('Gread')#x轴坐标签,坐标系默认为英文,如果需要显示为中文另加说明
plt.ylabel('Student')#y轴坐标签
plt.savefig('../R&Q_pic/test_0.png',dpi=600)
输出: 

 (2)绘制平行四边形
源码:

#绘制平行四边形
plt.plot([1,2,3,2,1],[1,2,2,1,1])
plt.axis([-10,10,-10,10]) #设置坐标轴取值范围,前面两位为x轴,后面两位为y轴,放数组【】里面
#plt.axis('off') #隐藏坐标轴
plt.savefig('../R&Q_pic/test_1.png',dpi=600)  #保存图形
输出:

(3)同一绘图区域绘制多图
源码:

#同一绘图区域绘制多图
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)   #创建一个0-9的整数序列
plt.plot(a,a*1.5,'ro-',label='a')
plt.plot(a,a*2.5,'gx--',label='b')
plt.plot(a,a*3.5,'y*',label='c')
plt.plot(a,a*4.5,'bs-',label='d')
plt.plot(a,a**2,'mH--',label='e')
plt.savefig('../R&Q_pic/test_2.png',dpi=600)
plt.legend() #显示图例
plt.show()  #显示图表
输出:

源码:

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family']='kaiti'
x=np.arange(0,4,0.02)#生成x轴序列
y_1=np.sin(np.pi*x)+2#生成y轴序列
y_2=np.cos(np.pi*x)
plt.plot(x,y_1,'mx')
plt.plot(x,y_2,'x')
plt.legend(['正弦曲线','余弦曲线'])
plt.title('正弦曲线图') #图表标题
plt.savefig('../R&Q_pic/test_3.png',dpi=600)
#plt.show()#显示图表
 输出:

 (4)多区域绘图
源码:

import matplotlib.pyplot as plt
import numpy as np
def f(t):
    return np.exp(-t)*np.cos(2*np.pi*t)
a=np.arange(0,5,0.02)
plt.subplot(322)  #将当前坐标系切割成多个子块(3行2列,第2个区域)
plt.plot(a,f(a))
 
plt.subplot(323)
plt.plot(a,np.cos(2*np.pi*a),'-.',color='r')
 
plt.subplot(324)
plt.plot(a,np.sin(2*np.pi*a),'--',color='g')
 
plt.subplot(325)
plt.plot(a,np.tan(2*np.pi*a),':',color='m')
 
plt.savefig('../R&Q_pic/test_5.png',dpi=600)
plt.show()#显示图表

输出:

示例
 

 2、直方图(hist)
源码:

import matplotlib.pyplot as plt
import numpy as np
 
plt.rcParams['font.family']='STSong'
 
datas_1=10+np.random.randn(1000)  #随机生成1000个零
datas_2=12+np.random.randn(1000)  #随机生成1000个零
plt.hist(datas_1,bins=30)
plt.hist(datas_2,bins=30,alpha=0.4)
plt.legend(["以10为中心的正态分布","以12为中心的正态分布"])
plt.title("直方图")
plt.xlabel("区间")
plt.ylabel("频数")
plt.savefig('../R&Q_pic/test_6.png',dpi=600)
plt.show()#显示图表
输出:

3、条形图 (bar)
源码:

import matplotlib.pyplot as plt
 
plt.rcParams['font.family']='STSong'
 
years=["2014","2015","2016","2017","2018","2019"]
baokao_nums=[172,164.9,177,201,238,290]
luqu_nums=[54.87,57.06,58.98,72.22,76.25,79.3]
x=range(len(years))
 
plt.bar(x,height=baokao_nums,width=0.4)
plt.bar([i+0.4 for i in x],luqu_nums,width=0.4)
plt.xticks([i+0.2 for i in x],years)  #横坐标对应位置显示内容
plt.legend(["研究生报考人数","研究生录取人数"])
plt.title("研究生历年报考和录取情况")
plt.xlabel("年份")
plt.ylabel("人数/万人")
plt.savefig('../R&Q_pic/test_7.png',dpi=600)
plt.show()#显示图表

输出:

4、饼图(pie) 
源码:

#案例:已知一个学生的活动时间分配为:学习8小时、睡觉7小时、吃饭3小时、玩乐6小时,绘制该学生一天时间分配饼状图
import matplotlib.pyplot as plt
plt.rcParams['font.family']='FangSong'
plt.rcParams['font.size']=18  #设置字体大小
labels=['学习','睡觉','吃饭','玩乐'] #活动标签
hours=[8,7,3,6] #时间分配
colors=['c','m','r','y']#各部分颜色
plt.pie(hours,labels=labels,colors=colors,shadow=True,explode=(0,0.1,0,0),\
        autopct='%.1f%%',labeldistance=1.2)
plt.title("一天时间分配饼状图")
plt.savefig('../R&Q_pic/test_8.png',dpi=600)
plt.show()#显示图表
 输出:

 5、散点图(scatter)
 源码:

import matplotlib.pyplot as plt
import numpy as np
num=50
plt.rcParams['font.family']='STSong'
plt.rcParams['font.size']=18  #设置字体大小
x_scatter=np.random.randint(1,10,num)  
y_scatter=np.random.randint(1,10,num)  
colors=range(num)
size=np.random.randint(30,500,num)
 
 
plt.title("散点图")
plt.scatter(x_scatter,y_scatter,c=colors,s=size)
plt.savefig('figure')
plt.show()#显示图表
输出:

  • 31
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值