三 python之matplotlib

315 阅读4分钟

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1.什么是Matplotlib

Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。Matplotlib可用于Python脚本,Python和lPython shell , Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。 Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。 为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与IPython结合使用时。对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组函数完全控制线条样式,字体属性,轴属性等。

2.为什么要学习Matplotlib

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。 能将数据进行可视化,更直观的呈现 使数据更加客观、更具说服力

3.常见图形种类及意义

折线图︰以折线的上升或下降来表示统计数量的增减变化的统计图特点∶能够显示数据的变化趋势,反映事物的变化情况。(变化) 散点图∶用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。 特点∶判断变量之间是否存在数量关联趋势,展示离群点(分布规律) 柱状图∶排列在工作表的列或行中的数据可以绘制到柱状图中。 特点∶绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。 直方图︰由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。 特点∶绘制连续性的数据展示一组或者多组数据的分布状况(统计) 饼图∶用于表示不同分类的占比情况,通过弧度大小来对比各种分类。特点∶分类数据的占比情况(占比)

# 导入模块
import matplotlib.pyplot as plt
# 在jupyter中执行的时候显示图片
%matplotlib inline  
# 传入x和y, 通过plot画图
plt.plot([1, 0, 9], [4, 5, 6])
# 在执行程序的时候展示图形
plt.show()
# 6. 折线图
# 6.1 折线图的绘制
from matplotlib import pyplot as plt
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x,y) 
plt.show()

image.png

# 6.2 折线的颜色和形状设置
from matplotlib import pyplot as plt
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x, y, color='red',alpha=0.5,linestyle='--',linewidth=3) 
plt.show()
'''基础属性设置
color='red' : 折线的颜色
alpha=0.5   : 折线的透明度(0-1)
linestyle='--' : 折线的样式
linewidth=3  : 折线的宽度
'''
'''线的样式
-      实线(solid)
--     短线(dashed)
-.     短点相间线(dashdot)
:    虚点线(dotted)
'''
# 6.3 折点样式
from matplotlib import pyplot as plt
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x, y, marker='o') 
plt.show()
# 6.4 设置的图片的大小和保存
from matplotlib import pyplot as plt
import random
x = range(2,26,2) # x轴的位置
y = [random.randint(15, 30) for i in x]

# 设置图片的大小
'''
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80      1英寸等于2.5cm,A4纸是 21*30cm的纸张 
'''
# 根据画布对象
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)  # 传入x和y, 通过plot画图
# plt.show()
# 保存(注意: 要放在绘制的下面,并且plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。)
plt.savefig('./t1.png')
# 图片的格式也可以保存为svg这种矢量图格式,这种矢量图放在网页中放大后不会有锯齿
# plt.savefig('./t1.svg')
# 6.5 绘制x轴和y轴的刻度
from matplotlib import pyplot as plt
x = range(2,26,2) # x轴的位置
y = [random.randint(15, 30) for i in x]
plt.figure(figsize=(20,8),dpi=80)

# 设置x轴的刻度
# plt.xticks(x)
# plt.xticks(range(1,25))
# 设置y轴的刻度
# plt.yticks(y)
# plt.yticks(range(min(y),max(y)+1))

# 构造x轴刻度标签
x_ticks_label = ["{}:00".format(i) for i in x]
#rotation = 45 让字旋转45度
plt.xticks(x,x_ticks_label,rotation = 45)
# 设置y轴的刻度标签
y_ticks_label = ["{}℃".format(i) for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),y_ticks_label)

# 绘图
plt.plot(x,y)
plt.show()

image.png

image.png