目录
散点图
- 散点图用来显示两组数据的值,每个点的坐标由变量的值决定
- 由一组不连接的点组成,用于观察两种变量的相关性
基本用法
基本语法:
plt.scatter(x,y)
import numpy as np
import matplotlib.pyplot as plt
height=[161,170,182,175,173,165]
weight=[50,58,80,70,69,55]
plt.scatter(height,weight)
# 显示数据图
plt.show()
相关性
不相关性
N=1000
x=np.random.randn(N)
y1=np.random.randn(len(x))
plt.scatter(x,y1)
plt.show()
正相关性
y2=x+np.random.randn(len(x))*0.1
plt.scatter(x,y2)
plt.show()
负相关性
y3=-1*x+np.random.randn(len(x))*0.1
plt.scatter(x,y3)
plt.show()
外观调整
- 颜色:c
- 点大小:s
- 透明度:alpha
- 点形状:marker
marker styles
折线图
- 折线图用直线段将各数据连接起来
- 常用来观察数据随时间变化趋势
基本用法
语法:
plt.plot(x,y)
import numpy as np
import matplotlib.pyplot as plt
# 生成一组等区间数值
x=np.linspace(-10,10,100)
y=x**2
plt.plot(x,y)
plt.show()
PS:线段太密,所以看起来平滑
表示随时间变化时 plot_date()
当x轴为日期时,应用plot_date()函数,注意:默认为散点图,要手动添加线型的参数
plot_date()用法
利用np.loadtxt()来导入数据
np.loadtxt()用法详解
外观调整
- 线型:linestyle=’-’
- 颜色:color=‘red’
- 点的形状:marker=‘o’
# 例:
plt.plot_date(date, close, color='green', linestyle='dashed', marker='o')
条形图
- 以长方形的长度为变量的统计图表
- 用来比较多个项目分类的数据大小
- 通常利用与较小的数据集分析
基本用法(竖向条形图)
基本语法:
plt.bar(x= , height= )
x:x轴数据
height:y轴方向柱的长度
import numpy as np
import matplotlib.pyplot as plt
N=5
y=[20,10,30,25,15]
index = np.arange(N)
p1 = plt.bar(x=index, height=y,width=0.5,bottom=100,color='red')
plt.show()
外观调整
宽度:width,默认0.8
(width即为沿x轴方向的长度)
颜色:color,默认blue
柱的底部数据:bottom
横向条形图
plt.bar(orientation=‘horizontal’)
p2 = plt.bar(x=0, bottom=index, width=y,height=0.5,orientation='horizontal')
plt.show()
其中,x参数为x轴坐标的起始值;
bottom为条距x轴的距离。
plt.barh()
使用barh()时,bottom改为left, 然后宽变高,高变宽。
p3=plt.barh(y=index,left=0,width=y,height=0.5)
plt.show()
y:y轴数据
复杂条形图
叠加条形图
本质就是改变上层柱的bottom
index=np.arange(4)
sales_BJ=[52,55,63,53]
sales_SH=[44,66,55,41]
bar_width=0.3
plt.bar(index,sales_BJ,bar_width,color='b')
plt.bar(index,sales_SH,bar_width,color='r',bottom=sales_BJ)
plt.show()
并列条形图
本质就是改变x的位置
index=np.arange(4)
sales_BJ=[52,55,63,53]
sales_SH=[44,66,55,41]
bar_width=0.3
plt.bar(index,sales_BJ,bar_width,color='b')
plt.bar(index+bar_width,sales_SH,bar_width,color='r')
plt.show()
直方图
- 由一系列高度不等的条形组成,表示数据的分布情况
基本用法
语法:
plt.hist(数据集, bins= ,normed= )
bins:箱子的个数
normed:是否标准化,若为是,则y轴数据为频率,而非个数
import numpy as np
import matplotlib.pyplot as plt
mu = 100 # mean of distribution
sigma = 20 # standard deviation of distribution
x = mu + sigma * np.random.randn(2000)
plt.hist(x, bins=10,color='red',normed=True)
plt.show()
plt.hist(x, bins=50,color='green',normed=False)
plt.show()
二维直方图 plt.hist2d()
x = np.random.randn(1000)+2
y = np.random.randn(1000)+3
plt.hist2d(x, y, bins=40)
plt.show()
饼状图
- 饼状图显示一个数据系列中各项的大小与各项总和的比例
- 饼状图中的数据点显示为整个饼状图的百分比
基本用法
基本语法:
plt.pie(数据集, labels=)
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
labels = 'A', 'B', 'C', 'D'
fracs = [15, 30, 45, 10]
# 表示某一块的分离程度
explode = (0, 0.05, 0, 0)
# 使饼状图为正圆形
plt.axes(aspect=1)
plt.pie(fracs, explode=explode, labels=labels, autopct='%.0f%%', shadow=True)
plt.show()
其他属性
突出的部分:explode
标签数据:autopct 例:%0.1%% 保留一位小数
阴影:shadow
箱形图
- 箱形图用来显示一组数据分散情况资料的统计图
- 组成:上边缘、上四分位数、中位数、下边缘、异常值
基本用法
基本语法:
plt.boxplot(数据集)
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(size=1000, loc=0.0, scale=1.0)
plt.boxplot(data,sym='o',whis=1.5)
plt.show()
具体参数含义:
箱形图统计学知识
箱形图详解
关于正态分布随机数生成:
np.random.normal()用法
多组数据对比
data = np.random.normal(size=(100, 4), loc=0.0, scale=1.0)
labels = ['A','B','C','D']
plt.boxplot(data, labels=labels)
plt.show()