python条形图

1、 导包

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

# 解决jupyter中负号是方块的问题
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体/Microsoft YaHei
mpl.rcParams['axes.unicode_minus'] = False

2、 条形图–vlines的应用

1、 ymin用来设置起始位置,可以统一设置也可以使用数组分别设置
2、 通过调节linewidth的大小来设置线宽,从而画条形图
3、 linestyle设置线的样式:solid直线(条形图),dashed虚线,dashdot短线,dotted点线
plt.vlines(x=x
          ,ymin=0  #线的起始位置:分别设置[0,0,0,2,5,6,7....],统一设置:3
          ,ymax=y
          ,linewidth=2  #线宽
          ,color='red'  
          ,alpha=0.4
          ,linestyle='dotted'  #设置样式solid直线可以用来画条形图,dashed虚线,dashdot短线,dotted点
          );

3、 条形图–面向对象可视化

1、 生成画布和子图,在画布上添加多个子图,通过画布来调用画图函数
2、 
# 生成画布和子图
fig , ax = plt.subplots(figsize=(10,6), facecolor='white',dpi=80)

# 在子图上绘制图形,通过子图.来调用
ax.vlines(x=df.index.values
          ,ymin=0  #线的起始位置:分别设置[0,0,0,2,5,6,7....],统一设置:3
          ,ymax=df.values
          ,linewidth=20  #线宽
          ,color='red'  
          ,alpha=0.4
          ,linestyle='solid'  #设置样式solid直线可以用来画条形图,dashed虚线,dashdot短线,dotted点
          )
给条形图上加上数字:参数分别是:x-index,y-index,保留几位有效数字,数组显示位置
# 子图上的数字,通过子图.来调用
for i,label in enumerate (df.values):
    ax.text(df.index[i],label+0.5
           ,np.round(label[0],1)  #保留几位有效数字
           ,horizontalalignment='center')

4、 条形图–样式

set_title:子图命名
set_xlabel和set_ylabel:子图坐标轴命名
set:y轴刻度范围
plt.xticks:x轴刻度及属性
# 给子图命名,通过子图.来调用
ax.set_title('城市里程柱状图', fontdict={'size':22})

# 设置坐标名称,不能用set
ax.set_xlabel(xlabel='音乐类别',fontdict={'size':17})
ax.set_ylabel(ylabel='音乐分类属性',fontdict={'size':17})

# 设置y轴的坐标范围,通过子图.来调用
ax.set(ylim=(0,23))

# 设置x轴坐标
plt.xticks(df.index
#           ,df.index[i].upper()
          ,rotation=60
          ,horizontalalignment='right'
          ,fontsize=22)

5、 条形图–长方形

1、 定义长方形:patches.Rectangle()
2、 在画布上加入长方形:fig.add_artist(p1)
import matplotlib.patches as patches

# 定义一个长方形,相对于画布的左下角
p1 = patches.Rectangle((0,0)  
                      ,width=1 #整个画布长和宽为1
                      ,height=1
                      ,alpha = .1
                      ,facecolor='green'
                      ,transform=fig.transFigure  #始终处于画布的最上方,而不会被其他子图覆盖
                      )

# 粉色长方形
p2 = patches.Rectangle((0.13,-0.000) #长方形左下角坐标对应画布左下角的位置
                      ,width=.49
                      ,height=.12
                      ,alpha=.1
                      ,facecolor='red'
                      ,transform=fig.transFigure)

# 蓝色长方形
p3 = patches.Rectangle((0.62,-0.000) #长方形左下角坐标对应画布左下角的位置
                      ,width=.28
                      ,height=.12
                      ,alpha=.1
                      ,facecolor='blue'
                      ,transform=fig.transFigure)

# 灰色长方形
p4 = patches.Rectangle((0.723,.12) #长方形左下角坐标对应画布左下角的位置
                      ,width=.051
                      ,height=.509
                      ,alpha=.2
                      ,facecolor='black'
                      ,transform=fig.transFigure)
fig.add_artist(p1)
fig.add_artist(p2)
fig.add_artist(p3)
fig.add_artist(p4);

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值