WHCSRL 技术网

Python数据可视化(week2)

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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

在这里插入图片描述

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

推荐阅读