Matplotlib
导入数据
1 import matplotlib.pyplot as plt 2 %matplotlib inline#不需写plot.show直接出图 3 plt.rcParams['font.sans-serif'] = ['SimHei']#显示中文 4 plt.rcParams['axes.unicode_minus'] = False#显示负号 5 import pandas as pd 6 import numpy as np 7 from pandas import Series,DataFrame 8 test=pd.read_excel("/Users/yaozhilin/Downloads/exercise.xlsx",sep="t") 9 test.head(5)#显示前五行
•离散型数据的可视化
~饼图
需求:计算“所需区域”每个地方的百分比-可视化
1 fig= plt.figure(figsize=(6,6))#调整图的大小 2 t=test["所属区域"].value_counts() 3 plt.pie(list(map(lambda x:x/t.sum(),t)),labels=list(t.index),autopct='%.1f%%',explode = [0,0.1,0,0])
注:labels为标签,autopct调数据显示,explode调突起部分
~条形图
x为分类变量y为连续变量
1 tb=test.groupby(["所属区域"]).agg({"数量":np.mean,}) 2 plt.bar(tb.index,list(tb["数量"])) 3 plt.xlabel("地区") 4 plt.ylabel("销售量") 5 plt.title("各地区年销售量") 6 plt.grid(linestyle="-.", axis='y', alpha=0.4)#设置横向网格
1 plt.barh(tb.index,list(tb["数量"]),color="red")2 plt.ylabel("地区") 3 plt.xlabel("销售量") 4 plt.title("各地区年销售量")
•连续性数据的可视化
~箱型图
单变量
1 t=test['数量'].dropna()#切记要去除na 2 plt.boxplot(t)
由图可判断离群值
~直方图
表示连续变量出现的频次
a=np.random.randn(50)#随机正态分布的50个数 plt.hist(a,bins=10)#bins表示切割多少分
~折线图
随时间变化的连续数据
1 tt=test.groupby(test["订购日期"]).agg({"数量":np.sum})#先聚合 2 tt
1 plt.plot(tt.index,tt["数量"],"go--")
关系型数据的可视化
~散点图
1 X=np.random.rand(50) 2 Y=np.random.rand(50) 3 plt.scatter(X,Y,c=np.random.randint(6,8,size=50),s=np.random.randint(10,60,size=50))