数据可视化入门-函数图像绘制

文章参考

画饼图

import matplotlib.pyplot as plt
labels=['frogs','hogs','dogs','logs']
sizes=[15,20,45,10]
colors=['yellowgreen','gold','lightskyblue','lightcoral']
explode=[0,0.1,0,0]

#explode每一部分距离圆心的位置,autopct是否在每块上进行标注,
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)
plt.show()

确定坐标范围
使用axis()命令给定坐标范围
plt.axis([xmin,xmax,ymin,ymax])
xlim()和ylim()可分别调整x,y的坐标范围

生成多个图表

import matplotlib.pyplot as plt
import numpy as np
from pylab import *

x=np.linspace(-5,5,50)
y=np.sin(x)



plt.figure(1)
plt.subplot(211)
plt.plot(x,y)

ax=plt.gca()
plt.subplot(212)
#设置坐标轴范围
xlim(-2.5,2.5)
ylim(-1,1)
#修改其中一个坐标轴信息
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data',0))
ax.spines['bottom'].set_position(('data',0))
plt.plot(x,y)
plt.show()

这里写图片描述

叠加图

线条的属性
实线:‘-’ 虚线:‘.’ 破折线:‘–’ 点划线:‘-.’
线条的标记
正方形 :‘s’ 星号 : ‘*’ 加号 : ‘+’…..
线条的颜色
基本上就是首字母
蓝色: ‘b’ 红色 : ‘r’…….
注:arange()
通过指定开始值、终值和步长创建表示 等差数列的一维数组,注意得到的结果数组不包含终值。

linspace()
通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值。

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(0, 5, 30)
#线条的属性可以合并表示例如‘g^’为绿色三角形标记
plt.plot(x,x,'r--',x,x**2,'bs',x,x**3,'g^')
plt.show()

这里写图片描述
数据直方图简介
plt.hist(data,bins,normed,facecolor,edgecolor,alpha)
参数介绍:
data:绘图数据
bins:长条的数目
normed:将得到的数据向量归一化,默认为0,不归一化,显示频数,归一化显示为频率
facecolor:长条块的颜色
edgecolor:长条块的边框的颜色
alpha:透明度
使直方图正常显示中文和负号

#显示黑体中文
matplotlib.rcParams['font.sans-serif']='SimHei']
#显示负号
matplotlib。rcParams['axes.unicode_minus']=False

注意:是图标正常显示中文后,颜色属性可直接用英文表达。

根据正态分布绘制频率分布直方图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import scipy as sp
from scipy import stats

#设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False

data=np.random.randn(10000)

plt.hist(data,bins=30,normed=1,facecolor="blue",edgecolor="red",alpha=0.6)
plt.xlabel("区间")
plt.ylabel("频数/频率")
plt.title("正态频率分布直方图")
plt.show()

这里写图片描述
绘制统计图
绘制正态分布曲线需调用scipy库,正态分布所用到的函数为:
正态分布:scipy.stats.norm.pdf(x,loc,scale)
正态直方图:scipy.stats.norm.rvs(loc,scale,size)

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import scipy as sp
from scipy import stats

#设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False

data=np.linspace(-5,5,1000)
plt.plot(data, sp.stats.norm.pdf(x=data, loc=0,scale=1))

#loc对应均值,scale对应方差
plt.hist(sp.stats.norm.rvs(loc=0,scale=1,size=200),bins=30,normed=1,facecolor="blue",edgecolor="red",alpha=0.6)
plt.xlabel("区间")
plt.ylabel("频数/频率")
plt.title("正态频率分布直方图")
plt.show()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zx_zhang01/article/details/81705103