1.竖状条形图

条形图最重要的就是plt.bar()

#你可以在这里设置条形图的宽度和颜色
plt.bar(range(len(a)),b,width=0.3,color="orange")

和前面学习的折线图,散点图一样其他地方没变化

from matplotlib import pyplot as plt
from matplotlib import font_manager

#设置中文
my_font=font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")

#电影数据
a=["战狼2","加勒比海盗:泯灭","蜘蛛侠: 英雄远征","穿越火线","地下城","赛尔号大电影:寻找凤凰神兽","喜洋洋与灰太狼:虎虎生威","钢铁侠3","美队3","复仇者联盟3:无限战争","天气之子"]
b=[12.02,13.02,23.54,25.89,43.90,35.67,63.43,42.21,21.46,56.32,34.62]

#设置图片大小
plt.figure(figsize=(20,15),dpi=80)

# 条形图代码 plt.bar()可设置条形图的宽度,颜色等属性
plt.bar(range(len(a)),b,width=0.3,color="orange")

#设置刻度
plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=90)

#画出图像
plt.show()

附上图片效果

python 条形图如何设置Y刻度 python条形图颜色设置_分割线

有些小伙伴会发现有些刻度电影名太长了,快显示不下了,我们当然可以调整图片的大小,当然还有一种办法:在代码中添加\n换行符

a=["战狼2","加勒比海盗\n:泯灭","蜘蛛侠\n: 英雄远征","穿越火线","地下城","赛尔号大电影\n:寻找凤凰神兽","喜洋洋与灰太狼\n:虎虎生威","钢铁侠3","美队3","复仇者联盟3\n:无限战争","天气之子"]

看看效果

python 条形图如何设置Y刻度 python条形图颜色设置_数据挖掘_02

刻度的文字就可以折叠显示了

说一下 range 和len的并用

  • 例如 :

list=[“Monday”,“Tuesday”,“Wednesday”,“Thusday”, “Friday”,“Saturday”,“Sunday”]

for i in range(len(list)):

print list[i]

  • Range函数的作用是顺次取出序列的数
  • Len函数的作用是求列表的长度(长度为7)以元素的个数
  • 两者的配合使用是顺次取出列表中的数据
----------------------------------------------------------我是分割线---------------------------------------------------------

2.横状条形图(使用较多)

关键代码及注意要点

#横着的条形图代码是plt.barh   关于设置条形的宽度,用height来设置,不是width!
plt.barh(range(len(a)),b,height=0.3,color="orange")

#设置刻度 刻度设置在y轴,旋转角度不需要
plt.yticks(range(len(a)),a,fontproperties=my_font)

#添加网格 网格有些属性例如 linestyle = "-.", color = "r", linewidth = "3" 等 ,我们这只用简单的透明度alpha
plt.grid(alpha=0.3)

上代码

from matplotlib import pyplot as plt
from matplotlib import font_manager

#设置中文
my_font=font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")

#电影数据
a=["战狼2","加勒比海盗:泯灭","蜘蛛侠: 英雄远征","穿越火线","地下城","赛尔号大电影:寻找凤凰神兽","喜洋洋与灰太狼:虎虎生威","钢铁侠3","美队3","复仇者联盟3:无限战争","天气之子"]
b=[12.02,13.02,23.54,25.89,43.90,35.67,63.43,42.21,21.46,56.32,34.62]

#设置图片大小
plt.figure(figsize=(20,8),dpi=80)

# 条形图代码 plt.bar()可设置条形图的宽度,颜色等属性
plt.barh(range(len(a)),b,height=0.3,color="orange")

#设置刻度 刻度设置在y轴,旋转角度不需要
plt.yticks(range(len(a)),a,fontproperties=my_font)

#画出图像
plt.show()

结果

python 条形图如何设置Y刻度 python条形图颜色设置_机器学习_03

----------------------------------------------------------我是分割线---------------------------------------------------------

3.多次条形图

我们用多次条形图来表示三日中4部电影的观影人数

a=["蜘蛛侠:英雄远征","星球觉醒","复仇者联盟4","天气之子"]
b_1=[23,43,78,45]
b_2=[27,35,69,23]
b_3=[85,37,67,29]

多次条形图最重要的就是调整条形的位置,让每条条形分开

#设置条形图的位置  bar_with不要超过1
bar_with=0.2 
x_1=list(range(len(a)))
x_2=[i+bar_with for i in x_1]
x_3=[i+bar_with*2 for i in x_1]

其余的部分和其他条形图一样 直接上代码

from matplotlib import pyplot as plt
from matplotlib import font_manager

#设置中文
my_font=font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc")
a=["蜘蛛侠:英雄远征","星球觉醒","复仇者联盟4","天气之子"]
b_1=[23,43,78,45]
b_2=[27,35,69,23]
b_3=[85,37,67,29]

#设置图片大小
plt.figure(figsize=(20,15),dpi=80)

#设置条形图的位置
bar_with=0.2
x_1=list(range(len(a)))
x_2=[i+bar_with for i in x_1]
x_3=[i+bar_with*2 for i in x_1]

# 条形图代码 plt.bar()可设置条形图的宽度,颜色等属性
plt.bar(x_1,b_1,width=bar_with,color="orange",label="第一日")
plt.bar(x_2,b_2,width=bar_with,color="red",label="第二日")
plt.bar(x_3,b_3,width=bar_with,color="green",label="第三日")

#设置图例
plt.legend(prop=my_font)

#设置刻度
plt.xticks(x_2,a,fontproperties=my_font)

#画出图片
plt.show()

结果如下

python 条形图如何设置Y刻度 python条形图颜色设置_机器学习_04

这就是今天的条形图案例。下一篇是直方图!加油!