栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

matplotlib matplotlib可视化之柱状图plt.bar()

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

matplotlib matplotlib可视化之柱状图plt.bar()

matplotlib matplotlib可视化之柱状图plt.bar()

# 准备数据
xiaoming_score = [80,75,65,58,75,80,90]  #小明各科成绩
xiaohong_score =[90,85,75,62,75,60,80]   #小红各科成绩
subjects = ['语文','英语','数学','物理','化学','生物','体育'] 


参数解析:

plt.bar(x = np.arange(7),        # 横坐标
        height = xiaoming_score, # 柱状高度
        width = 0.35,            # 柱状宽度
        label = '小明',          # 标签
        edgecolor = 'k',         # 边框颜色
        color = 'r',             # 柱状图颜色
        tick_label = subjects,   # 每个柱状图的坐标标签
        linewidth= 3)            # 柱状图边框宽度
plt.legend() #显示标签
plt.show()


簇状条形图:通过控制横轴坐标绘图

# 绘图
plt.figure(figsize = (10,7))
plt.bar(x = np.arange(7),height = xiaoming_score,width = 0.35,label = '小明',edgecolor = 'white',color = 'r',tick_label = subjects)
plt.bar(x = np.arange(7)+0.35,height = xiaohong_score,width = 0.35,label = '小红')
 
# 补充标题及标签
plt.title('小明、小红各科成绩对比') # 图的标题
plt.xlabel('科目',fontsize = 15)   # 横轴标签
plt.ylabel('成绩',fontsize = 15)  # 纵轴标签
plt.xticks(np.arange(7)+0.17,subjects,fontsize = 12)  # 柱状图横轴坐标各类别标签
plt.legend()  # 显示两组柱状图的标签
 
# 注释各柱状图的数值,在这里即分数
for i in range(len(subjects)):
    plt.text(x = i-0.1, y = xiaoming_score[i]+1,s = xiaoming_score[i] ) # s表示注释内容
for i in range(len(subjects)):
    plt.text(x = i+0.3, y = xiaohong_score[i]+1,s = xiaoming_score[i] )
# 显示图像
plt.show()

# 绘图
plt.bar(x = subjects, height = xiaoming_score, label = '小明', color = 'steelblue', alpha = 0.8, width = 0.35)
plt.bar(x = subjects, height = xiaohong_score, label = '小红', color = 'indianred', alpha = 0.8, width = 0.35, bottom=xiaoming_score)
 
# 补充标题及标签
plt.title('小明、小红各科成绩对比') # 图的标题
plt.xlabel('科目',fontsize = 15)   # 横轴标签
plt.ylabel('成绩',fontsize = 15)  # 纵轴标签
plt.xticks(np.arange(7),subjects,fontsize = 12)  # 柱状图横轴坐标各类别标签
plt.legend()  # 显示两组柱状图的标签
 
# 注释各柱状图的数值,在这里即分数
for i in range(len(subjects)):
    plt.text(x = i-0.1, y = xiaoming_score[i]-30,s = xiaoming_score[i] )
for i in range(len(subjects)):
    plt.text(x = i-0.1, y = xiaohong_score[i]+30,s = xiaoming_score[i] )
 
plt.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998270.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号