【jupyter-lab】实战经验积累(二)

‘line’ : line plot (default)#折线图
 
‘bar’ : vertical bar plot#条形图。stacked为True时为堆叠的柱状图
 
‘barh’ : horizontal bar plot#横向条形图
 
‘hist’ : histogram#直方图(数值频率分布)
 
‘box’ : boxplot#箱型图
 
‘kde’ : Kernel Density Estimation plot#密度图,主要对柱状图添加Kernel 概率密度线
 
‘density’ : same as ‘kde’
 
‘area’ : area plot#与x轴所围区域图(面积图)。Stacked=True时,每列必须全部为正或负值,
stacked=False时,对数据没有要求
 
‘pie’ : pie plot#饼图。数值必须为正值,需指定Y轴或者subplots=True
 
‘scatter’ : scatter plot#散点图。需指定X轴Y轴
 
‘hexbin’ : hexbin plot#蜂巢图。需指定X轴Y轴

#绘制饼图
plt.figure(figsize=(10,6))
plt.pie(x=data['salecount'].groupby(data['shopname']).sum(),#绘图数据
        autopct='%.2lf%%', #设置百分比的格式,这里保留2位小数
        pctdistance=0.7, #设置百分比标签与圆心的距离
        labels=data['salecount'].groupby(data['shopname']).sum().index,
        labeldistance=1.1,#设置标签与圆心的距离
        startangle=180, #设置饼图的初始角度
        radius=1, #设置饼图的半径
        counterclock=False, #是否逆时针,这里设置为顺时针方向
        wedgeprops={'linewidth':1.5,'edgecolor':'green'}, #设置饼图内外边界的属性值
        textprops={'fontsize':10,'color':'black'}, #设置文本标签的属性值
       )
plt.title('子类别销量总体占比情况') #饼图总标题
#显示图形 
plt.show()
data_1=data[(data.title=='A1')|(data.title=='S2')]
#sns.barplot() 画条形图:主要展现的是每个矩形高度的数值变量的中心趋势的估计
#x,y,hue:数据字段变量名
plt.figure(figsize=(24,8)) #图形展示的大小情况
sns.barplot(x='shopname', #横坐标代表什么
            y='salecount', #纵坐标代表什么
            hue='title', #可以根据需要改变
            data=data_1, #数据提供
            saturation=0.75,
            ci=0,)
plt.title('各品牌各种类的总销量') #总标题
plt.ylabel('销量') #侧标题
plt.show()
plt.figure(figsize=(24,8)) #图形展示的大小情况
sns.barplot(x='shopname', #横坐标代表什么
            y='salecount', #纵坐标代表什么
            hue='price', #可以根据需要改变
            data=data_1, #数据提供
            saturation=0.75,
            ci=0,)
plt.title('各品牌各种类的总销量') #总标题
plt.ylabel('销量') #侧标题
plt.show()
#评论数
plt.figure(figsize=(16,8))
data.groupby('shopname').comment_count.mean().sort_values(ascending=False).plot(kind='bar',color='b')
plt.title('各品牌商品的平均评论数')
plt.ylabel('评论数')
plt.show()
#查看价格的箱型图
plt.figure(figsize=(16,8))
sns.boxplot(x='shopname',y='price',data=data)
plt.ylim(0,25)
#如果不限制,就不容易看清箱型,所以把Y轴刻度缩小为0-3000(根据实际情况来设置)
#如果只有一家店一家价格的话那就是一条直线,如果有很多相同一类的话它会自动归类,然后上下横线表示上下限
#求平均价格
data.groupby('shopname').price.sum()
avg_price=data.groupby('shopname').price.sum()/data.groupby('shopname').price.count()
print(avg_price)
#各品牌的平均价格
plt.figure(figsize=(8,6)) #图形展示的大小情况
avg_price.sort_values(ascending=False).plot.bar(width=0.8,color='steelblue')
plt.title('各品牌产品的平均价格') #总标题
plt.ylabel('销量') #侧标题
plt.show()
plt.figure(figsize=(10,8))
x=data.groupby('shopname').salecount.sum()
y=data.groupby('shopname').salecount.sum()
txt=data.groupby('shopname').shopname.count().index
s=avg_price
plt.scatter(x,y,s,alpha=0.6,marker="v")
for i in range(17): #22是品牌数量
    plt.annotate(txt[i],xy=(x[i],y[i]),xytext=(x[i]+0.1,y[i]+0.1)) #在散点后面增加品牌名字
plt.xlabel('销量')
plt.ylabel('销售额')
plt.show()
posted @ 2022-12-26 22:04  Vijurria  阅读(53)  评论(0编辑  收藏  举报