matplotlib包
数据可视化的包
下载
Win+R 输入指令:
包下载原理:从数据源网站下载包;
但一般数据源为外网,下载速度慢,所以可以通过国内镜像网站下载,下载速度更快
以下 以 清华大学的镜像为例
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/
直方图
核心函数 plt.bar( X , Y )
plt.bar( X, Y) #以x为横坐标标签,Y为纵坐标数值
plt.title('Name') #直方图表头
plt.xticks( X, X_names )#x轴的标签显示为X_names
plt.ylabel('Y_name') #Y轴标签
plt.show()
条形图
核心函数: plt.hist(value,bins=N)
plt.hist(value,bins=100) #把x轴分为100份,y轴值为value
折线图
核心函数:plt.plot(x,y)
from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(5,5)) #定义图片大小
plt.plot(x,y) #填充x轴坐标值和y轴坐标值
plt.title('y vs x') #命名图表标题
plt.xlabel('x') #命名x轴标题
plt.ylabel('y') #命名y轴标题
plt.show() # 展示图形
散点图
核心函数:plt.scatter(x,y)
from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(5,5)) #定义图片大小
plt.scatter(x,y) #填充x轴坐标值和y轴坐标值
plt.title('y vs x') #命名图表标题
plt.xlabel('x') #命名x轴标题
plt.ylabel('y') #命名y轴标题
plt.show() # 展示图形
散点图参数
plt.scatter (
x, #x轴值
y, #y轴值
marker = 'o', #标记形状
facecolor = 'blue', #填充色
edgecolor = 'red', #边线色
s = 50 #大小
)
多张图同时展示
核心函数 plt.subplot( )
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,10)) #统一图表坐标轴范围
fig1 = plt.subplot(2,1,1) #"211"指,一张图分为两行一列,该图在第一部分;"abc"指,一张图粉为a行b列,该图在第c部分
plt.scatter(x1,x2)
fig2 = plt.subplot(2,1,2)
plt.scatter(x2,y2)
分类散点图可视化
核心函数 x[flag]
import matplotlib.pyplot as plt
mask = y==1 #设定通过条件
passed = plt.scatter(X1[mask],X2[mask]) #通过的点
failed = plt.scatter(x1[~mask],x2[~mask]) #未通过的点
图例
plt.legend( (passed,failed), ('passed','failed') )
树状图
from matplotlib import pyplot as plt
tree.plot_tree(
tree_data_name, #树 数据
filled = 'True', #背景填充色
feature_names=['name1','name2','name3','name4'],#特征名称
class_names=['name1','name2','name3','name4'] #label名称
fontsize=20 #字的尺寸
)
区域块染色
例图:
原理:蓝色和橘色其实是许多个小点组成,只要足够密,即可达到上图效果
import numpy as np
xx,yy = np.meshgrid(
np.arrange(0,10,0.05),#在 (0,10)范围内,以0.05为间距,生成线性数组
np.arrange(0,10,0.05)# 在 (0,10)范围内,以0.05为间距,生成线性数组
)
x_range = np.c_[xx.ravel(),yy.ravel()]
pred_y_range = KNN.predict(x_range)
图片显示
plt.imshow( data_name )
原理:一张图片,其实是无数个像素点组成的,每个像素点对应一个数值;所以一张图片的 本质是一个二维数组矩阵,每个元素点的值为 [0,255]的int类
以下假设,一张图片的像素数据存储在数组point
里
from matplotlib import pyplot as plt
img1 = point
fig1 = plt.figure()
plt.imshow(img1)
plt.show()
pillow包
from PIL import Image
import matplotlib.pyplot as plt
#读取
img = Image.open('数字识别5.jpg')
# 按比例缩小
img.thumbnail( (25,25) )
# 图像转码
img = np.array(img)
if img.ndim == 3: #RGB图转灰度图
img = img[:,:,0]
plt.imshow(img)
plt.show()