基本概念
数据可视化是指借助于图形化的手段,清晰、快捷有效的传达与沟通信息。同时,也可以辅助用户做出相应的判断,更好的去洞悉数据背后的价值
matplotlib
matplotlib是用于Python的绘图库,提供各种常用图形的绘制。例如,条形图,柱形图,线图,散点图等
根据惯例,使用如下的方式导入:
import matplotlib as mpl
import matplotlib.pyplot as plt
一、图形绘制
绘制线图
可以通过matplotlib.pyplot的plot方法进行图形绘制。
plt.plot([1,2],[3,4],"ro--",[5,6],[7,8],"g<-")
也可以分两次绘制,如下:
plt.plot([1,2],[3,4],"ro--")
plt.plot([5,6],[7,8],"g<-")
输出图形如下:
需要注意的是:如果x坐标未给定,则默认是0,1,2,3,4…
x,y两个数组,对位取元素,构成一个坐标,进行绘制。
画曲线。
x = np.linspace(0,2*np.pi,100)
y =np.sin(x)
plt.plot(x,y,"r")
输出为:
图形交互式设置
我们可以设置jupyter notebook图形是否交互式显示,默认为否。
%matplotlib notebook
设置中文支持
matplotlib默认情况下不支持中文显示,如果需要显示中文,则我们需要做一些额外的设置操作。设置可以分为:
全局设置
局部设置
全局设置
我们可以通过执行:
mpl.rcParams["font.family"] = "中文字体名称"
mpl.rcParams["axes.unicode_minus"]=False
进行设置
常用的设置如下:
font.family 字体的名称
sans-serif 西文字体(默认)
SimHei 中文黑体
FangSong 中文仿宋
YouYuan 中文幼圆
STSong 华文宋体
Kaiti 中文楷体
LiSu 中文隶书
font.style 字体的风格
normal 常规(默认)
italic 斜体
oblique 倾斜
font.size 字体的大小(默认10)
axes.unicode_minus 是否使用Unicode的减号(负号)【在支持中文显示状态下,需要设置为False】,这是因为但是,字体设置成支持中文的字体后,负号(-)也会使用中文的负号,而中文的负号又不支持显示,
mpl.rcParams["font.family"]="YouYuan"
mpl.rcParams["axes.unicode_minus"]=False
mpl.rcParams["font.size"]=10
plt.plot([-1,-2,-3],[4,5,6])
plt.title("标题")
输出:
使用mpl.rcParams设置参数时,是一种全局的设置,我们也可以进行局部的设置,仅对当前的绘制生效。当全局设置与局部设置冲突时,以局部设置为准。
plt.plot([-1,-2,-3],[4,5,6])
plt.title("标题1",fontsize=20,fontproperties= "Kaiti")
输出:
保存图表
通过plt的savefig方法将当前的图形保存到硬盘或者类文件对象中,相关参数如下:
dpi:每英寸分辨率点数。
facecolor:设置图像的背景色。
bbox_inches:设置为tight,可以紧凑保存图像
x= np.linspace(0,2*np.pi,100)
y = np.sin(x)
plt.plot(x,y)
plt.savefig("e:/jupyter_notebook/test11.jpg",dpi=200,facecolor="#ff0000",bbox_inches="tight")
读取图形:
from PIL import Image
image = Image.open("e:/jupyter_notebook/test11.jpg")
image.show()
读取结果会用默认图片浏览器打开
保存图像。保存到类文件对象中。
from io import BytesIO
bio = BytesIO()
plt.savefig(bio)
bio.read()
bio.getvalue()
bio.seek(0)
bio.getvalue()
输出:
需要注意的是如果读取一遍后需要再次读取需要重新将指针设置为文件开头,否则无法读取
颜色,点标记与线型设置
我们可以在绘制图形时,显式指定图形的颜色,点标记或线条形状。具体设置可以查看帮助文档
color©:线条颜色。
linestyle(ls):线条形状
linewidth(lw):线宽。
marker:点标记形状
markersize(ms):点标记的大小
markeredgecolor(mec):点边缘颜色
markeredgewidth(mew):点边缘宽度
markerfacecolor(mfc):点的颜色。
说明:
颜色,点标记与线型可以使用一个参数进行设置
颜色除了可以使用预设简写的字符之外,也可以使用全称(例如red)也可以使用RGB颜色表示。
如下所示:
plt.plot([1, 2, 3], [4, 5, 6], c="g", ls="--", marker=">", ms=20)
plt.plot([1, 2, 3], [4, 5, 6