python绘制常用图表(下)

一、绘制箱型图

绘制箱形图
plt.boxplot(x,vert,widths,labels)
x待绘图数据源
vert箱形图方向,如果为True则表示为纵向,如果为False则表示为横向
widths箱形图宽度
labels箱形图标签

import numpy as np
import matplotlib.pyplot as plt
import squarify
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x和y的值
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515])
x = [y1,y2]
# 绘图
labels = ['注册人数','激活人数']
plt.boxplot(x,labels = labels,vert=True,widths=[0.2,0.5])
# 设置标题
plt.title(label = 'xxxxxxxx')
# 设置网格线
plt.grid(True)
# 显示图表
plt.show()

效果如下:
在这里插入图片描述

二、绘制雷达图

绘制雷达图
plt.polar(theta,r,color,marker,linewidth)
theta表示每一点在极坐标系中的角度
r表示每一点在极坐标系中的半径
color连接各个点之间线的颜色
marker每点的标记物
linewidth连接线的宽度

import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立极坐标系
# 参数polar=True表示建立极坐标系
plt.subplot(111,polar=True)
# 把整个圆分成5分
dataLenth = 5
# np.linspace表示在指定的间隔内返回均匀间隔的数字
angles = np.linspace(0,2*np.pi,dataLenth,endpoint=False)
labels = ['沟通能力','业务理解能力','逻辑思维能力','快速学习能力','工具使用能力']
data = [1,2,3,4,5]
# 闭合
data1 = np.concatenate((data,[data[0]]))
# 闭合
angles1 = np.concatenate((angles,[angles[0]]))
# 绘图
plt.polar(angles1,data1,color = 'r',marker = 'o')
# 设置x轴刻度
plt.xticks(angles1,labels)
# 设置标题
plt.title(label = 'xxxxxxxx')
# 显示图表
plt.show()

效果如下:

在这里插入图片描述

三、绘制面积图

绘制面积图:
plt.stackplot(x,y,labels,colors)
(x,y)表示x/y坐标数值
labels不同系列图表的图例名

import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x和y的值
x = np.array([1,2,3,4,5,6,7,8,9])
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515])
# 绘图
labels = ['注册人数','激活人数']
plt.stackplot(x,y1,y2,labels = labels)
# 设置标题
plt.title('xxxxxxxxxx',loc='center')
# 设置x轴y轴的名称
plt.xlabel('月份')
plt.ylabel('注册与激活人数')
# 设置网格线
plt.grid(True)
# 设置图例
plt.legend()
# 显示图表
plt.show()

效果如下:
在这里插入图片描述

四、绘制饼图

绘制饼图:
plt.pie(x,expolde,labels,colors,autopct,pctdistance,shadow,labeldistance,startangle,radius,counterclock,
wedgeprops,textprops,center,frame)
x 待绘图数据
expolde 饼图中每一块离圆心的距离
labels 饼图中每一块的标签
colors 饼图中每一块的颜色
autopct 控制饼图内数值的百分比格式
pctdistance 数据标签距中心的距离
shadow 饼图是否有阴影
labeldistance 每一块索引距离中心的距离
startangle 饼图的初始角度
radius 饼图的半径
counterclock 是否让饼图逆时针显示
wedgeprops 饼图内外边界属性
textprops 饼图中文本相关属性
center 饼图中心位置
frame 是否显示饼图背后的图框

import numpy as np
import matplotlib.pyplot as plt
import squarify
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x值
x = np.array([8566,5335,7310,6482])
labels = ['东区','北区','南区','西区']
# 让第一块离圆心远一点
explode = [0.15,0,0,0]
labeldistance = 1
# 绘图
plt.pie(x,labels = labels,autopct='%.0f%%',shadow=True,explode = explode,radius=1.0,labeldistance = labeldistance)
# 设置标题
plt.title(label = 'xxxxxxxx')
# 显示图表
plt.show()

效果如下:
在这里插入图片描述
以上内容仅供参考学习,如有侵权请联系我删除!

发布了69 篇原创文章 · 获赞 7 · 访问量 3344

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/104237099
今日推荐