Matplotlib系列(四)--plt.bar与plt.barh条形图

(一)竖条条形图

  参数说明

参数  说明 类型
x x坐标  int,float
height 条形的高度 int,float
width 线条的宽度 0~1,默认是0.8
botton 条形的起始位置 也就是y轴的起始坐标
align 条形的中心位置 “center”,"lege"边缘
color 条形的颜色 “r”,“b”,“g”,“#123465",默认的颜色是“b”
edgecolor 边框的颜色 同上
linewidth 边框的宽度 像素,默认无,int
tick_label 下标的标签 可以是元组类型的字符组合
log y轴使用科学计算法表示 bool
orientation 是竖直条还是水平条 竖直:"vertical",水平条:"horizontal"

  颜色的参数说明

  字符 颜色
'b' blue
'g' green
'r' red
'c' cyan   青色
'm' magenta  平红
'y' yellow
'k' black
'w' white
import numpy as np
import matplotlib.pyplot as plt

# 将全局的字体设置为黑体
plt.rcParams['font.family'] = 'SimHei'

# 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)

# 绘图 x x轴, height 高度, 默认:color="blue", width=0.2 线条的宽度 默认0.8
p1 = plt.bar(x, height=y, width=0.5)

# 展示图形
plt.show()

  输出效果:

  

  (二) 水平条形图

    1.使用bar绘制:注意:需要把:orientation="horizontal",然后x,与y的数据交换,再添加bottom=x,即可。

     

"""
    水平条形图,需要修改以下属性
    orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt

# 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N)

# 绘图 x= 起始位置, bottom= 水平条的底部(左侧), y轴, height 水平条的宽度, width 水平条的长度
p1 = plt.bar(x=0, bottom=y, height=0.5, width=x, orientation="horizontal")

# 展示图形
plt.show()

    

    (2)使用barh()时,bottom改为left, 然后宽变高,高变宽。

    

"""
    水平条形图,需要以下属性
    orientation="horizontal"
"""
import numpy as np
import matplotlib.pyplot as plt

# 数据
N = 5
x = [20, 10, 30, 25, 15]
y = np.arange(N)

# 绘图 y= y轴, left= 水平条的底部, height 水平条的宽度, width 水平条的长度
p1 = plt.barh(y, left=0, height=0.5, width=x)

# 展示图形
plt.show()

    

 (三)、复杂一些的条形图

  1.并列的条形图  

      注意事项:我们再同一张画布,画两组条形图,并且紧挨着就时并列条形图。改变x的位置。

  

import numpy as np
import matplotlib.pyplot as plt

# 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3

# 绘图 x 表示 从那里开始
plt.bar(x, Bj, bar_width)
plt.bar(x+bar_width, Sh, bar_width, align="center")

# 展示图片
plt.show()

  (2) 添加图例信息

  • 对于图例:先可选属性里添加label=“”,标签再使用plt.lengd()显示。
  • 对于数据的标签使用任意方向的标签来标注,再由x,y数据确定坐标。
  • tick_label=str,用来显示自定义坐标轴

  

"""
    默认的是竖值条形图
"""
import numpy as np
import matplotlib.pyplot as plt

# 将全局的字体设置为黑体
plt.rcParams['font.family'] = 'SimHei'

# 数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)
# 添加地名坐标
str1 = ("北京", "上海", "武汉", "深圳", "重庆")

# 绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, label="城市指标", tick_label=str1)

# 添加数据标签
for a, b in zip(x, y):
    plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=10)

# 添加图例
plt.legend()

# 展示图形
plt.show()

 

猜你喜欢

转载自www.cnblogs.com/shine-rainbow/p/10742952.html