python 数据分析基础 day14-matplotlib
2018-03-27 本文已影响28人
billyang916
今天是读《pyhton数据分析基础》的第14天,今天读书笔记的内容为使用matplotlib模块绘制常用的统计图。
模块概括
matplotlib 是最基础的绘图模块,pandas和seaborn的绘图功能的使用依赖于matplotlib。
条形图
#绘制柱形图
from matplotlib import pyplot as plt
#绘图数据
x=["a","c","d","e","b"]
y=[11.5,18.6,17.5,14.3,10.8]
#创建基础图
fig=plt.figure()
#在基础图上仅绘制一个图,括号中的三个参数代表基础图中的统计图布局,参数一次代表:图的行数量、图的列数量、第几个图。本例中,为1行1列,第一个图
bar1=fig.add_subplot(1,1,1)
#绘制柱形图,align表示条形与标签中间对齐。
bar1.bar(x,y,align='center',color="grey")
#设置基础图形中某个统计图(这里指柱形图)的坐标轴位置
bar1.xaxis.set_ticks_position("bottom")
bar1.yaxis.set_ticks_position("left")
#设置x、y轴标签
plt.xlabel("variable x")
plt.ylabel("variable y")
#设置统计图标题
plt.title("sample_bar char")
#显示统计图
plt.show()
统计图如下:
柱形图.png
直方图
#绘制直方图
from matplotlib import pyplot as plt
import numpy as np
#设置数据:两组正态分布的数据
mu1, mu2, sigma = 100, 130, 15
x1 = mu1 + sigma*np.random.randn(10000)
x2 = mu2 + sigma*np.random.randn(10000)
#绘制基础图
fig=plt.figure()
hist1=fig.add_subplot(1,1,1)
#绘制直方图
#bins=50 表示每个变量的 值应该被分成 50 份。normed=False 表示直方图显示的是频率分布
hist1.hist(x1,bins=50,normed=False)
hist1.hist(x2,bins=50,normed=False,alpha=0.5)
#确定坐标轴位置
hist1.xaxis.set_ticks_position("bottom")
hist1.yaxis.set_ticks_position("left")
#设置坐标轴标签
plt.xlabel("x")
plt.ylabel("frequencyof x1,x2")
#设置标题
plt.title("sample_histagram")
#显示图形
plt.show()
统计图如下:
直方图.png
折线图
#绘制折线图
from matplotlib import pyplot as plt
#设置绘图数据
x=[1,2,3,4,5]
y=[10.2,13.0,15.1,15.2,16.2]
#绘制基础图
fig=plt.figure()
plot1=fig.add_subplot(1,1,1)
#绘制折线图
plot1.plot(x,y,marker=r".")
#去顶坐标轴位置
plot1.xaxis.set_ticks_position("bottom")
plot1.yaxis.set_ticks_position("left")
#确定坐标轴标签
plt.xlabel("month")
plt.ylabel("score")
#图标题
plt.title("sample_plot")
#显示图形
plt.show()
统计图如下:
折线图.png
散点图
#绘制散点图
from matplotlib import pyplot as plt
import numpy as np
#准备绘图数据
x=np.random.randn(50).cumsum()
y=np.random.randn(50).cumsum()
#绘制基础图
fig=plt.figure()
scatter1=fig.add_subplot(1,1,1)
#绘制散点图
scatter1.scatter(x,y)
#确定坐标轴位置
scatter1.xaxis.set_ticks_position('bottom')
scatter1.yaxis.set_ticks_position('left')
#设置坐标轴标签
plt.xlabel("variable x")
plt.ylabel("variable y")
#设置图表标题
plt.title("sample_scatter")
#显示图形
plt.show()
统计图如下:
散点图.png
箱线图
#绘制箱线图
from matplotlib import pyplot as plt
import numpy as np
#准备绘图数据
normal = np.random.normal(loc=0.0, scale=1.0, size=100)
lognormal = np.random.lognormal(mean=0.0, sigma=1.0, size=100)
data = [normal,lognormal]
dataLabel=["normal","lognormal"]
#绘制基本图
fig=plt.figure()
boxPlot1=fig.add_subplot(1,1,1)
#绘制箱线图
boxPlot1.boxplot(data,labels=dataLabel)
#确定坐标周位置
boxPlot1.xaxis.set_ticks_position("bottom")
boxPlot1.yaxis.set_ticks_position("left")
#设定坐标轴标签
plt.xlabel("catagory")
plt.ylabel("value")
#设定标题
plt.title("sample_boxPlot")
#显示统计图
plt.show()
统计图如下:
箱线图.png