使用matplotlib绘制简单图表day02

2.4、绘制堆积面积图
2.4.1、使用stackplot()绘制堆积面积图
x:表示x轴的数据,可以是一维数组
y:表示Y轴数据,可以是一维数组或二维数组序列
labels:表示每组折线及填充区域的标签
baseline:表示计算基线的方法,包括“zero”,“sym”,“wiggle”,“weighted_wiggle”
zero:表示恒定零基线
sym:表示对称于零基线
wiggle:表示最小化平方效率的总和
weighted_wiggle:表示执行相同的操作,但权重用于说明每一层的大小
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(6)
y1=np.array([1,3,5,4,6,7])
y2=np.array([1,4,6,7,3,5])
y3=np.array([3,5,6,7,3,5])
plt.stackplot(x,y1,y2,y3)
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
2.5、绘制直方图
2.5.1、使用hist()绘制直方图
x:表示x轴的数据,可以为单个数组或多个数组的序列
bins:表示矩形条的个数,默认为0个
range:表示数据的范围。若没有提供range参数的值,则数据范围为(x.min(),x.max())
cumulative:表示是否计算累计频数或频率
histtype:表示直方图的类型
align:表示矩形条的对齐方式
orientation:表示矩形条的摆放方式,默认为垂直方向
rwidth:表示矩形条宽度的百分比
stacked:表示是否将多个矩形条以堆积形式摆放

import numpy as np
import matplotlib.pyplot as plt
scores=np.random.randint(0,100,50)#准备50个随机测试数据
plt.hist(scores,bins=8,histtype=‘stepfilled’)#绘制直方图
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
import numpy as np
import matplotlib.pyplot as plt
random_state=np.random.RandomState(19680801)
random_x=random_state.randn(10000)#10000个随机数
plt.hist(random_x,bins=555)#控制矩形条个数,绘制555个矩形条的直方图
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
2.6、绘制饼图或圆环图
2.6.1、使用pie()绘制饼图或圆环图
x:表示扇形或楔形的数据
explode:表示扇形或楔形离开圆心的距离
labels:表示扇形或楔形对应的标签文本
autopct:表示控制扇形或楔形的数值显示的字符串,可通过格式化指定小数点后的位数
pctdistance:表示扇形或楔形对应的数值标签离圆心的比例,默认0.6
shadow:表示是否显示阴影
labelddistance:表示标签文本的绘制位置,默认1.1
startangle:表示起始绘制角度,默认从x轴的正方向逆时针绘制
radius:表示扇形或楔形的半径
center:表示图表的中心点位置
frame:表示是否显示图标

import numpy as np
import matplotlib.pyplot as plt
data=np.array([20,40,50,10,15,55])
pie_labels=np.array([‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,])
plt.pie(data,radius=1.5,labels=pie_labels,autopct=’%.1f%%’)#半径为1.5,保留小数1位数
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
import numpy as np
import matplotlib.pyplot as plt
data=np.array([20,40,50,10,15,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=’%.1f%%’,pctdistance=0.75)
#绘制圆环图:外圆半径为1.5,楔形宽度为0.7,图标为0.75
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
2.6.2、实例
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams[‘font.sans-serif’]=[‘SimHei’]#导入支持中文的包
mpl.rcParams[‘axes.unicode_minus’]=False
#饼图外侧的说明文字
kinds=[‘购物’,‘人情往来’,‘餐饮美食’,‘通信物流’,‘生活日用’,
‘交通出行’,‘休闲娱乐’,‘其他’]
#饼图的数据
money_scale=[800/3000,100/3000,1000/3000,300/3000,
200/3000,200/3000,200/3000,200/3000]
dev_position=[0.1,0.1,0.3,0.1,0.1,0.1,0.1,0.1]#每个块离圆心的距离
plt.pie(money_scale,labels=kinds,autopct=’%3.lf%%’,
shadow=True,explode=dev_position,startangle=90)#逆时针开始绘制90度
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
绿色扇形的面积最大,说明餐饮美食方面的支出在当月总支出中占比最大;橙色扇形面积最小,说明人情往来的支出在当月总支出中占比最小
2.7、绘制散点图或气泡图
2.7.1、使用scatter()绘制散点图或气泡图
x,y:表示数据点的位置
s:表示数据点的大小
c:表示数据点的颜色
marker:表示数据点的样式,默认为圆形
cmap:表示数据点的颜色映射表,仅当参数c为浮点数组是才使用
norm:表示数据亮度,可以取值为0-1
vmin,vmax:表示亮度的最小值和最大值
alpha:表示透明度,可以取值为0-1
linewidths:表示数据点边缘的宽度
edgecolors:表示数据点边缘的颜色

import matplotlib.pyplot as plt
import matplotlib as mpl
num=50
x=np.random.rand(num)
y=np.random.rand(num)
plt.scatter(x,y)
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
import matplotlib.pyplot as plt
import matplotlib as mpl
num=50
x=np.random.rand(num)
y=np.random.rand(num)
area=x100#area=x100y100
area=y*100
plt.scatter(x,y,s=area)
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
2.8、绘制箱型图
2.8.1、使boxplot()绘制箱型图
x:绘制箱型图的数据
sym:表示异常值对应的符号,默认为空心圆圈
vert表示是否将箱型图垂直摆放,默认为垂直摆放
whis:表示箱型图上下须与上下四分位的距离,默认为1.5倍的四分位
positions:表示箱体的位置
widths:表示箱体的宽度,默认为0.5
patch_artist:表示是否填充箱体的颜色,默认不填充
meanline:是否用横跨箱体的线条标出中位数,默认不使用
showcaps:表示是否显示箱形顶部和底部的横线,默认显示
showbox:表示是否显示箱形图的箱体
showfliers:表示是否显示异常值

import numpy as np
import matplotlib.pyplot as plt
data=np.random.rand(100)
#绘制箱型图:显示中位数的线条,箱体宽度为0.2,填充箱体的颜色,不显示异常值
plt.boxplot(data,meanline=True,widths=0.2,patch_artist=True,showfliers=False)
plt.title(“2020080603051”)
plt.show()
在这里插入图片描述
2.9、绘制雷达图
2.9.1、使用polar()绘制雷达图
theta:表示每一个数据点所在射线与极径的夹角
r:表示每一个数据点到原点的距离

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams[‘font.family’]=‘simHei’
plt.rcParams[‘axes.unicode_minus’]=False
dim_num=6
data=np.array([[0.40,0.32,0.35,0.30,0.30,0.88],
[0.85,0.35,0.30,0.40,0.40,0.30],
[0.43,0.89,0.30,0.28,0.22,0.30],
[0.30,0.25,0.48,0.85,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,2np.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(“2020080603051”)
plt.show()
在这里插入图片描述
紫色、棕色、蓝色、红色、橙色,绿色多边形分别代表用户1,2,3,4,5,6 的测试结果;用户1偏向现实型人格,用户2 偏向于研究型人格,用户3偏向艺术型人格,用户4偏向于 企业型人格,用户5偏向于社会型人格,用户6偏向于传统型人格。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值