一、常见图形绘制
matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。
二、常见图形种类及意义
- 折线图:以折线上升或者下降来表示统计数量的增减变化的统计图
- 特点:能够显示数据的变化趋势,反应事物的变化情况。(变化)
- 散点图:用两组数据都成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
- 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
- 柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。 - 特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
api: plt.bar(x,width,align=‘center’,**kwargs)
- 直方图:由一系列高度不等的纵向条纹或线段表示数据分布情况。一般用横轴表示数据范围,纵轴表示分布情况。
- 特点:绘制连续性的数据展示一组或多组数据的分布情况(统计)
api: matplotlib.pyplot.hist(x,bins=None)
- 饼图:用于表示不同分类发占比情况,通过弧度大小来对比各种分类。
- 特点:分类数据的占比情况(占比)
api: plt.pie(x,labels=,autopct=,colors)
三、图形绘制的实现
1.散点图绘制
需求:探究房屋面积的房屋价格之间的关系
房屋面积数据:
x=[225.98,247.07,253.14,457.85,241.58,301.01,20.67,
288.64,163.56,120.06,207.83,342.75,147.9,53.06,
224.72,29.51,21.61,483.21,245.25,399.25,343.35]
房屋价格数据:
y=[196.63,203.88,210.86,372.74,202.41,247.61,24.9,239.34,
140.32,104.15,176.84,288.23,128.79,49.64,191.74,33.1,
30.74,400.02,205.35,330.64,283.45]
代码:
import matplotlib.pyplot as plt
#房屋面积数据:
x=[225.98,247.07,253.14,457.85,241.58,301.01,20.67,
288.64,163.56,120.06,207.83,342.75,147.9,53.06,
224.72,29.51,21.61,483.21,245.25,399.25,343.35]
#房屋价格数据:
y=[196.63,203.88,210.86,372.74,202.41,247.61,24.9,239.34,
140.32,104.15,176.84,288.23,128.79,49.64,191.74,33.1,
30.74,400.02,205.35,330.64,283.45]
plt.figure(figsize=(20,8),dpi=100)
plt.scatter(x,y)
plt.show()
运行结果:
2.柱状图绘制
需求:对比每部电影票房的收入
电影数据如下:
代码:
#电影名字
movie_name=['雷神3:诸神黄昏',"正义联盟","东方快车谋杀案","寻梦环游记",
"全球风暴","降魔传","追捕","七十七天","密战","狂兽","其他"]
#横坐标
x=range(len(movie_name))
#票房数据
y=[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]
plt.figure(figsize=(20,8),dpi=100)
plt.bar(x,y,width=0.5,color=['b','r','g','y','c','m','y','k','c','g','b'])
plt.xticks(x,movie_name)
plt.grid(linestyle="--",alpha=0.5)
plt.title("电影票房收入",fontsize=20)
plt.show()
3.饼图
代码:
x=[1,2,3,4,5]
label=['calss1','calss2','calss3','calss4','calss5']
plt.figure(figsize=(20,8),dpi=100)
#可以进行抽取
explode=[0,0.1,0,0,0]
plt.pie(x,labels=label,autopct='%1.2f%%',explode=explode)
plt.axis("equal")
plt.show()