3、读取文件“jiuye.xlsx”中本年度某高校计科专业学生的就业数据,绘制就业类型和占比的饼状图,运行结果如下图所示。
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['font.size']=12
data=pd.read_excel("C:\\Users\\Administrator\\Desktop\\jiuye.xlsx")
plt.figure(figsize=(6, 6))
plt.title("本年度计科专业学生的就业类型")
plt.pie(data["所占比例"],labels=data["就业类型"],startangle=90,shadow=True,autopct='%.1f%%')
plt.show()
4、绘制如下不规则子图。
第一个子图为折线图,x为np.arange(1,100),y为x的平方值。
第二个图为散点图,x为np.arange(0,10),ynp.random.rand(10)。
第三个图为条形图,x和y的值分别是[20,10,30,25,15]和[25,15,35,30,20],
运行结果如图所示。提示:第一行的2个图占了221和222的位置,如果想在下面只放一个图,需把第3个子图所在的行两列当成一列,即2行1列第2个位置。
import numpy as np
plt.figure(figsize=(10, 7))
plt.subplot2grid((2,2),(0,0))
x=np.arange(1,100)
plt.plot(x,x**2)
plt.subplot2grid((2,2),(0,1))
x=np.arange(0,10)
y=np.random.rand(10)
plt.scatter(x,y)
plt.subplot2grid((2,2),(1,0),colspan=2)
x=[20,10,30,25,15]
y=[25,15,35,30,20]
plt.bar(x,y)
plt.show()
5、绘制如下不规则子图。3个子图中x均为0到10之间均匀分布的100个浮点数,
第一个子图y为sin(x),
第二个子图y为cos(x),
第三个子图y为cos(2*x),
运行结果如下图所示。
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.size']=12
plt.figure(figsize=(8, 5))
x=np.linspace(0, 10, 100)
plt.subplot2grid((2,2),(0,0),colspan=2)
plt.title('subplot Example')
plt.ylabel("sin(x)")
y=np.sin(x)
plt.plot(x,y)
plt.subplot2grid((2,2),(1,0))
plt.ylabel("cos(x)")
y=np.cos(x)
plt.plot(x,y)
plt.subplot2grid((2,2),(1,1))
plt.ylabel("cos(2x)")
y=np.cos(2*x)
plt.plot(x,y)
plt.tight_layout()#调整子图间距
plt.show()
6、读取data目录下的“Tour.xsls”文件,对我国某地区2000-2017年的旅游人均花费进行分析与可视化,运行结果如下图所示。
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['font.size']=12
plt.figure(figsize=(15, 8))
data=pd.read_excel("C:\\Users\\Administrator\\Desktop\\Tour.xlsx")
x=data["统计年度"]
y1=data['国内旅游人均花费']
y2=data['城镇居民国内旅游人均花费']
y3=data['农村居民国内旅游人均花费']
plt.xlabel="统计年份"
plt.ylabel('旅游人均花费')
plt.title('国内某地区旅游人均花费变化图')
time=data['统计年度']
N=len(time)
x=np.arange(N)
width=0.2
plt.bar(x-width,y1,width,label='国内旅游人均花费',tick_label=time,facecolor='green')
plt.bar(x,y2,width,label='城镇居民国内旅游人均花费',tick_label=time,facecolor='red')
plt.bar(x+width,y3,width,label='农村居民国内旅游人均花费',tick_label=time,facecolor='blue')
plt.legend(loc='upper left')
plt.show()
7、读取“gaokaofenshu.xlsx”文件中三个专业的入学高考分数,做出如下折线图和柱状图,分析三个专业高考入学分数的分布情况,运行结果如下图所示。
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['font.size']=15
data = pd.read_excel('C:\\Users\\Administrator\\Desktop\\gaokaofenshu.xlsx')
zy=['计科','材料','物流']
f = plt.figure(figsize=(18, 7))
ax1 = f.add_subplot(1,2,1)
d1=data[data['专业']==zy[0]]['入学分数']
d2=data[data['专业']==zy[1]]['入学分数']
d3=data[data['专业']==zy[2]]['入学分数']
d=[d1,d2,d3]
x=np.arange(10)
y_color=['g','r','b']
y_markers=['o','+','*']
for i in range(3):
ax1.plot(x,d[i],color=y_color[i],marker=y_markers[i],label=zy[i])
ax1.legend(loc='upper right')
ax1.set_xlabel('(a)高考分数的折线图')
ax2 = f.add_subplot(1,2,2)
x=np.arange(3)
width=0.2
s=['0','1','2']
s1=[d1.mean(),d2.mean(),d3.mean()]
s2=[d1.max(),d2.max(),d3.max()]
s3=[d1.min(),d2.min(),d3.min()]
ax2.barh(x-width,s1,width,label='入学分数.mean',tick_label=s)
ax2.barh(x,s2,width,label='入学分数.max',tick_label=s)
ax2.barh(x+width,s3,width,label='入学分数.min',tick_label=s)
ax2.legend(loc='upper right')
plt.legend(title='None,None')
ax2.set_xlabel('(b)高考分数的柱状图')
plt.tight_layout()
plt.show()