点图和线图
"""
数据可视化是关于图形或表格的展示,借助图形化的手段,有效的传达信息
使用Matplotlib绘图:
1.绘制点图和线图
点图和线图是用来表示二维数据之间的关系,查看两个变量之间关系的最有效的方法
可以通过plot()函数来实现。
使用subplot可以绘制多个子图图像,并且可以添加标题和坐标轴。
"""
import numpy as np
import matplotlib.pyplot as plt
#生成x1和x2
x1=np.linspace(0.0,5.0);
x2=np.linspace(0.0,2.0);
# 获得y1和y2
y1=np.cos(2*np.pi*x1)*np.exp(-x1);
y2=np.cos(2*np.pi*x2);
plt.subplot(2,1,1)
plt.plot(x1,y1,'yo-')
plt.title('a table of 2 subplots')
plt.ylabel('Demo1')
plt.subplot(2,1,2);
plt.plot(x2,y2,'r.-')
# 设置横坐标和纵坐标
plt.xlabel('time(s)');
plt.ylabel('Demo2');
plt.show()
"""
plt.plot(x,y,format_string **kwargs)
x:表示x轴数据
y:表示y轴数据
format_string表示控制权曲线的字符串,可以选择
**kwargs表示第二组或者更多的(x,y,format_string)数据
subplot(numPows,numCols,plotNum)
表示绘图区域被分成numPows行,numCols列,plotNum指定第几个图像
"""
直方图
"""
直方图:是对数据分布情况的图形表示,是一种二维的统计表,它的两个坐标分别是统计样本和该样本对应的
某一个属性的度量。我们使用hist()函数来绘制直方图。
hist的命令格式:
n,bins,patches=plt.hist(arr,bins,normed=10,normed=0,facecolor='black'
edgecolor='black',alpha=1,histtype='bar)
其中arr表示直方图中的数据
bins表示直方图的柱数,默认为10,
normed:是否将的得到的直方图归一化,默认为0
facecolor表示直方图的颜色
edgecolor表示边距的颜色
alpha表示透明度
histtype直方图的类型,有'bar','barstacked','step','stepfilled'几种类型
其中返回值为
n:直方图向量,是否归一化由normed决定
bins:返回的各个bin的区域
patches:返回各个bin里面包含的数据,是一个list
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
junzhi=100
sigma=15
x=junzhi+sigma*np.random.randn(10000);
# print(x.shape)
num_number=50
n,bins,patches=plt.hist(x,num_number,normed=1,facecolor='green',alpha=0.5);
y=mlab.normpdf(bins,junzhi,sigma)
plt.plot(bins,y,'r--');
plt.xlabel('Smarts');
plt.ylabel('Probability')
plt.title('Histogram of IQ')
# 调整图像的间距,防止与label重合
plt.subplots_adjust(left=0.15)
plt.show()
"""
饼状图:是一个划分为几个扇形的圆形统计表,用于描述量,频率或百分比之间的关系,可以使用pie()函数来形成饼状图
x :(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化;
labels :(每一块)饼图外侧显示的说明文字;
explode :(每一块)离开中心距离;
startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
shadow :在饼图下面画一个阴影。默认值:False,即不画阴影;
labeldistance :label标记的绘制位置,相对于半径的比例,默认值为1.1, 如<1则绘制在饼图内侧;
autopct :控制饼图内百分比设置,可以使用format字符串或者format function
'%1.1f'指小数点前后位数(没有用空格补齐);
pctdistance :类似于labeldistance,指定autopct的位置刻度,默认值为0.6;
radius :控制饼图半径,默认值为1;
counterclock :指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。
wedgeprops :字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={'linewidth':3}设置wedge线宽为3。
textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
center :浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
frame :布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
rotatelabels :布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。
"""
labels='Frogs','Hogs','Dogs','Logs'
sizes=[15,30,45,10]
colors=['yellowgreen','gold','lightskyblue','lightcoral']
# 0.1表示要分离出来
explode=(0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)
# plt.axis('equal') #该行代码使饼图长宽相等
plt.axis('equal')
plt.show()