python数据分析与可视化
数据分析初始阶段,通常都要进行可视化处理。数据可视化旨在直观展示信息的分析结果和构思,令某些抽象数据具象化,这些抽象数据包括数据测量单位的性质或数量。本章用的程序库matplotlib是建立在Numpy之上的一个Python图库,它提供了一个面向对象的API和一个过程式类的MATLAB API,他们可以并行使用。
1、
import numpy as np
import matplotlib.pyplot as plt
scores=np.random.randint(0,100,50)
plt.hist(scores,bins=8,histtype=‘stepfilled’)
plt.title(‘37’)
plt.show()
2、
x=np.arange(6)
y1=np.array([1,4,3,5,6,7])
y2=np.array([3,4,3,5,6,7])
y3=np.array([2,4,3,5,6,7])
plt.stackplot(x,y1,y2,y3)
plt.title(‘37’)
plt.show()
3、
random_state=np.random.RandomState(1231241)
random_x=random_state.randn(10000)
plt.hist(random_x,bins=25)
plt.title(‘37’)
plt.show()
4、
data=np.array([10,30,15,30,15])
pie_labels=np.array([‘A’,‘B’,‘C’,‘D’,‘E’])
plt.pie(data,radius=1.5,labels=pie_labels,autopct=’%3.1f%%’)
plt.title(‘37’)
plt.show()
5、
import matplotlib as mpl
mpl.rcParams[‘font.sans-serif’]=[‘SimHei’]
mpl.rcParams[‘axes.unicode_minus’]=False
kinds=[‘购物’,‘礼尚往来’,‘餐饮美食’,‘通信’,‘生活日用’,‘交通出行’,‘休闲娱乐’,‘其他’]
money_scale=[500/1500,123/1500,400/1500,234/1500,300/1500,200/1500,100/1500,150/1500]
dev_position=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
plt.pie(money_scale,labels=kinds,autopct=’%3.1f%%’,shadow=True,
explode=dev_position,startangle=90)
plt.title(‘37’)
plt.show()
6、
num=50
x=np.random.rand(num)
y=np.random.rand(num)
plt.scatter(x,y)
plt.title(‘37’)
plt.show()
7、
num=50
x=np.random.rand(num)
y=np.random.rand(num)
area=(800*np.random.rand(num)**2)
plt.scatter(x,y,s=area)
plt.title(‘37’)
plt.show()
8、
plt.rcParams[‘font.sans-serif’]=‘SimHei’
plt.rcParams[‘axes.unicode_minus’]=False
x_speed=np.arange(10,210,10)
y_distance=np.array([0.3,0.5,1,3,5,5.5,7,8,9,12,14,15.5,17.8,19,20,23,27,30,31,32])
plt.scatter(x_speed,y_distance,s=50,alpha=0.9)
plt.title(‘37’)
plt.show()
9、
plt.rcParams[‘font.family’]= ‘SimHei’
plt.rcParams[‘axes.unicode_minus’]=False
data_2018=np.array([4500,6654.5,5283.4,5107.8,5443.3,5550.6,6400.2,6404.9,5483.1,5330.2,5543,6199.9])
data_2017=np.array([4605.2,4710.3,5168.9,4767.2,4947,5203,6047.4,5945.5,5219.6,5038.1,5196.3,5698.6])
plt.boxplot([data_2018,data_2017],labels=(‘2018年’,‘2017年’),meanline=True,widths=0.5,vert=False,patch_artist=True)
plt.title(‘37’)
plt.show()
10、
plt.rcParams[‘font.family’]= ‘SimHei’
plt.rcParams[‘axes.unicode_minus’]=False
dim_num=6
data=np.array([[0.50,0.32,0.35,0.30,0.30,0.88],
[0.45,0.35,0.30,0.40,0.40,0.30],
[0.43,0.99,0.30,0.28,0.22,0.30],
[0.30,0.25,0.48,0.95,0.45,0.40],
[0.20,0.38,0.87,0.45,0.32,0.28],
[0.34,0.31,0.38,0.40,0.92,0.28]])
angles=np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
angles=np.concatenate((angles,[angles[0]]))
data=np.concatenate((data,[data[0]]))
radar_labels=[‘研究型(I)’,‘艺术型(A)’,‘社会型(S)’,‘企业型(E)’,‘传统型©’,‘现实型®’]
radar_labels=np.concatenate((radar_labels, [radar_labels[0]]))
plt.polar(angles, data)
plt.thetagrids(angles * 180/np.pi, labels=radar_labels)
plt.fill(angles, data, alpha=0.25)
plt.title(‘37’)
plt.show()
11、
data =np.array([20,50,10,15,30,55])
pie_labels=np.array([‘A’,‘B’,‘C’,‘D’,‘E’,‘F’])
plt.pie(data,radius=1.5,wedgeprops={‘width’: 0.7},labels=pie_labels,autopct=’%3.1f%%’,pctdistance=0.75)
plt.title(‘37’)
plt.show()
12、
x = np.arange(1,13)
y_a = np.array([191,123,234,42,123,432,567,234,231,132,123,134])
y_b = np.array([123,143,234,242,523,232,467,334,131,332,234,345])
y_c = np.array([91,123,534,432,223,332,367,434,111,322,345,560])
plt.stackplot(x,y_a,y_b,y_c)
plt.title(‘37’)
plt.show()
来源:宇文云初