python可视化学习(十四)排序图-柱状图

#排序图 它的主要作用就是帮助我们比较变量的大小,典型的排序图有:柱状图,坡度图,哑铃图…

#先来认识柱状图的函数
plt.vlines():vertical line. 就是绘制竖线的函数 #重要的参数 x:横坐标 ymin :条形图的起点,最下方 ymax:y轴的终点,也是长条的最上边

#认识数据
df_raw =pd.read_csv('mpg_ggplot2.csv')
df_raw.head(20)

在这里插入图片描述#注:一个汽车的品牌有不同的车型,每个车型都有自己的里程/加论,所以不同的车型对应着去许多不同的城市里程
#注:图像中确是一个品牌一个柱子,所有车型的均值

df_raw[['cty','manufacturer']].groupby('manufacturer').mean()	
#对数据进行排序
df.sort_values('cty',inplace=True)
df

在这里插入图片描述
在这里插入图片描述

df.reset_index(inplace=True) #将dataframe中的索引恢复到0到n,将文本的原有索引特征恢复成普通的特征

在这里插入图片描述

#绘制图像
plt.figure(figsize=(16,10))
plt.vlines(x=df.index,ymin=0,ymax=df.cty,color='firebrick',alpha=0.7,linewidth=20)

在这里插入图片描述

fig,ax =plt.subplots(figsize=(10,6),facecolor='white',dpi=80)
ax.vlines(x=df.index,ymin=0,ymax=df.cty,color='firebrick',alpha=0.7,linewidth=10);

#没有画布后续将无法显示
#text函数一次只能只能为一个柱子添加注释,因此需要循坏
for i,cty in enumerate(df.cty):
    ax.text(i,cty+0.5#注释所有的横纵坐标
            ,round(cty,1) #b保留一位小数
            , horizontalalignment='center'#相对于我们规定的x和y坐标,文字显示在什么地方
           
           )
#######装饰图像#####################
ax.set_title('城市里程柱状图',fontdict={'size':22})#font字体
ax.set(ylabel='城市里程/加仑',ylim=(0,30))
ax.set_ylabel('城市里程/加仑',fontdict={'size':16})
#############
plt.xticks(df.index #显示在横坐标上的位置,
          ,df.manufacturer.str.upper()
          ,rotation=60
          ,horizontalalignment='right')

在这里插入图片描述

##patches.Rectangle
#add_artist
fig,ax =plt.subplots(figsize=(10,6),facecolor='white',dpi=80)
ax.vlines(x=df.index,ymin=0,ymax=df.cty,color='firebrick',alpha=0.7,linewidth=10);

#没有画布后续将无法显示
#text函数一次只能只能为一个柱子添加注释,因此需要循坏
for i,cty in enumerate(df.cty):
    ax.text(i,cty+0.5#注释所有的横纵坐标
            ,round(cty,1) #b保留一位小数
            , horizontalalignment='center'#相对于我们规定的x和y坐标,文字显示在什么地方
           
           )
#######装饰图像#####################
ax.set_title('城市里程柱状图',fontdict={'size':22})#font字体
ax.set(ylabel='城市里程/加仑',ylim=(0,30))
ax.set_ylabel('城市里程/加仑',fontdict={'size':16})
#############plt的功能更多
plt.xticks(df.index #显示在横坐标上的位置,
          ,df.manufacturer.str.upper()
          ,rotation=60
          ,horizontalalignment='right'
          ,fontsize=12);
###############构建长方形######
p1=patches.Rectangle((0.57,-0.005) #长方形所在位置的左下角的坐标,长方形在哪个位置
                     ,width=.33 #长方形的宽(与x轴平行的那一段)
                     ,height=.13 #长方形的高
                     ,alpha=.1#透明度
                     ,facecolor='green'#矩阵的颜色
                     ,transform=fig.transFigure #确保在图像 上方不被子图所遮挡

)

p2=patches.Rectangle((.124,-0.005) #长方形所在位置的左下角的坐标,长方形在哪个位置
                     ,width=.446 #长方形的宽(与x轴平行的那一段)
                     ,height=.13 #长方形的高
                     ,alpha=.1#透明度
                     ,facecolor='red'#矩阵的颜色
                     ,transform=fig.transFigure #确保在图像 上方不被子图所遮挡

)
fig.add_artist(p1)  #将多变形添加到子图的fig(画布)
fig.add_artist(p2)  #将多变形添加到子图的fig(画布)
plt.show()

在这里插入图片描述绘制图像的Rectangle参照的位置几乎是fig的大小,fig的左下角为(0,0),宽和高的位置依赖于画布设置的比列,画布的最宽的地方和最高的地方分别为1 我们可以通过控制从(0,0)开始,长宽都为一的长方体来探索长方体的大小

#add_patch#只对子图有效
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值