Python数据可视化(2)
使用matplotlib库解决图形编辑问题,Python数据可视化第二周作业答案,主要涉及雷达图和箱型图
题目
1.绘制单雷达图;
2.多雷达图;
3.绘制箱型图;
1.雷达图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False
labels = np.array(['综合','KDA','发育','推进','生存','输出'])
nAttr = 6
data = np.array([7,9,8,9,8,7])
angles = np.linspace(0,2*np.pi,nAttr,endpoint=False)
data = np.concatenate((data,[data[0]])) #对data进行封闭
angles = np.concatenate((angles,[angles[0]])) #对angles进行封闭
labels=np.concatenate((labels,[labels[0]])) #对labels进行封闭
fig = plt.figure(facecolor="white")
plt.subplot(111,polar=True)
plt.plot(angles,data,'bo-',color ='g',linewidth=2)
plt.fill(angles,data,facecolor='g',alpha=0.25)
plt.thetagrids(angles*180/np.pi,labels)
plt.figtext(0.52,0.95,'王者荣耀能力值雷达图',ha='center')
plt.grid(True)
plt.show()
2.多雷达图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False
labels = np.array(['综合','KDA','发育','推进','生存','输出'])
nAttr = 6 #设置维度6
data = np.array([[7,9,8,9,8,7],
[9,8,7,6,7,6],
[7,7,7,7,7,7],
[8,7,9,5,6,6],
[7,8,9,5,9,9],
[9,9,9,9,9,9]])
angles = np.linspace(0,2*np.pi,nAttr,endpoint=False)
data = np.concatenate((data,[data[0]])) #对data进行封闭
angles = np.concatenate((angles,[angles[0]])) #对angles进行封闭
labels=np.concatenate((labels,[labels[0]])) #对labels进行封闭
fig = plt.figure(facecolor="white")
plt.subplot(111,polar=True)
plt.plot(angles,data,'bo-',color ='g',linewidth=2)
plt.fill(angles,data,facecolor='g',alpha=0.25)#填充颜色
plt.thetagrids(angles*180/np.pi,labels)
plt.figtext(0.52,0.95,'王者荣耀能力值雷达图',ha='center')
plt.grid(True)
plt.show()
3.一张图上分4个子图,分别绘制圆形、正方形、三角形和直线
import pandas as pd
import matplotlib.pyplot as plt
data = {
'China': [1000, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2500],
'America': [1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100],
'Britain': [1000, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000],
"Russia": [800, 1000, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]
}
df = pd.DataFrame(data)
df.plot.box(title="Consumer spending in each country")
plt.grid(linestyle="--", alpha=0.3)
plt.show()