matplotlib-绘制条形图

2023-10-30

绘制单个条形图(横着/竖着)

# 设置字体
import matplotlib  as mpl
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.sans-serif'] = ['SimHei']#黑体


from matplotlib import pyplot as plt

a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!\n爸爸","加勒比海盗5:\n死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]

#设置图形大小
plt.figure(figsize=(20,15),dpi=80)
#绘制条形图
# plt.bar(range(len(a)),b,width=0.3,color='red')#range(len(a)取列表中的数值,绘制竖着的条形图
plt.barh(range(len(a)),b,height=0.3,color="orange")#绘制横着的条形图
#设置字符串到x轴
# plt.xticks(range(len(a)),a,rotation=90)#将字符串对应到相应的数字
plt.yticks(range(len(a)),a)#将字符串对应到相应的数字
plt.savefig("./movie.png")
plt.grid(alpha=0.3)
plt.show()

在这里插入图片描述

在这里插入图片描述
#设置多个条形图

# 设置字体
import matplotlib  as mpl
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.sans-serif'] = ['SimHei']#黑体


from matplotlib import pyplot as plt

a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

x_14=list(range(len(a)))
x_15=list(i+0.2 for i in x_14)
x_16=list(i+0.4 for i in x_14)

#设置图片大小
plt.figure(figsize=(20,10),dpi=50)
#绘条形图
plt.bar(range(len(a)),b_14,width=0.2,color='pink',label='14日')
plt.bar(x_15,b_15,width=0.2,color='yellow',label='15日')
plt.bar(x_16,b_16,width=0.2,color='green',label='16日')

#设置坐标轴
plt.xticks(x_15,a)
#设置图例
plt.legend()
plt.show()

在这里插入图片描述

绘制频数(率)分布直方图

# 设置字体
import matplotlib  as mpl
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.sans-serif'] = ['SimHei']#黑体


from matplotlib import pyplot as plt

# 绘制直方图
a=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

#计算组数
d = 3  #组距,即每组的宽度
num_bins = (max(a)-min(a))//d#设置组数
print(max(a),min(a),max(a)-min(a))
print(num_bins)

#设置图形的大小
plt.figure(figsize=(20,8),dpi=80)
# plt.hist(a,num_bins)# 频数分布直方图
plt.hist(a,num_bins,density=True)#频率分布直方图
#设置x轴的刻度
plt.xticks(range(min(a),max(a)+d,d))
plt.grid()
plt.show()

##经过统计整理后的问题无法绘制直方图,原始数据方可绘制直方图;统计后数据可以绘制成条形图,相当于直方图。
interval = [0,5,10,15,20,25,30,35,40,45,60,90]
width = [5,5,5,5,5,5,5,5,5,15,30,60]#组距
quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]#数据
print(len(interval),len(width),len(quantity))
#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(12),quantity,width=1)
#设置x轴的刻度
_x = [i-0.5 for i in range(13)]#图像往左移动15个单位
_xtick_labels =  interval+[150]
plt.xticks(_x,_xtick_labels)

plt.grid(alpha=0.4)
plt.show()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
前端框架绘图:
百度ECHART、seaborn

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib-绘制条形图 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 软件测试员必知!压力测试总共需要几个步骤?思路总结篇

    在运维工作中 压力测试是一项很重要的工作 比如在一个网站上线之前 能承受多大访问量 在大访问量情况下性能怎样 这些数据指标好坏将会直接影响用户体验 今天我们就来深入了解下压力测试 首先 什么是压力测试 软件压力测试是一种基本的质量保证行为
  • Python 实现 RAS 加解密(ras模块,pycrypto模块)

    一 pycrypto pycryptodome模块 1 模块安装说明 crypto这个模块的安装有点小坑 需要注意 crypto pycrypto pycryptodome的功能是一样的 crypto与pycrypto已经没有维护了 所以
  • uni-app开发微信小程序,textarea组件宽度设置,解决超出父级div

    问题描述 当我们使用textarea组件时 会出现设置宽度100 但其超出了父级Div 如下图 解决方案 添加box sizing border box 属性 即可完美解决 属性定义及使用说明 box sizing 属性定义如何计算一个元素
  • 【Python】高级变量类型

    目录 列表 List 编辑列表定义与结构 编辑列表的操作 元组 Tuple 编辑元组的定义 编辑元组的操作 编辑元组与格式化字符串 编辑元组和列表的转换 字典 dictionary 编辑字典的定义 编辑字典的操作 字符串 string 编辑
  • df和du显示的磁盘空间使用情况不一致的原因及处理

    df和du显示的磁盘空间使用情况不一致的原因及处理 在Linux下查看磁盘空间使用情况 最常使用的就是du和df了 然而两者还是有很大区别的 有时候其输出结果甚至非常悬殊 1 如何记忆这两个命令 du Disk Usage df Disk
  • 【深入理解C++】可调用对象、std::function、std::bind()

    文章目录 1 可调用对象 1 1 函数指针 1 2 函数对象 1 3 可被转换为函数指针的类对象 1 4 类成员函数指针 2 std function 2 1 包装普通函数 2 2 包装函数指针 2 3 包装函数对象 2 4 包装可被转换为
  • jdbc连接数据库的基本步骤

    1 在项目中导入java sql包 2 加载数据库驱动程序 Class forName com mysql cj jdbc Driver 3 定义数据库的链接地址 String url jdbc mysql localhost studen
  • 答题卡实战

    import cv2 import matplotlib pyplot as plt import numpy as np import myutils import argparse import imutils contours 正确答
  • CSDN中如何使用“私信”功能

    私信功能一直是CSDN被吐槽的诸多功能之一 但是有时我们还是需要这个功能的 比如说 我们可以私信给CSDN管理员 把我们的ID加入审核的白名单 这样以后妈妈就再也不用担心自己的博客被 待审核了 下面就一步步教你如何使用私信功能 1 悬浮在自
  • java利用模板生成PDF

    maven依赖 lt dependency gt lt groupId gt net sf jasperreports lt groupId gt lt artifactId gt jasperreports lt version gt 6
  • C语言,通过多文件编辑定义字符指针,指向堆区空间,计算字符串长度

    通过多文件编辑 定义字符指针 分别指向堆区空间 计算字符串长度 要求 1 定义函数实现堆区空间申请 2 在主函数中实现输入字符串 3 定义函数实现字符串长度 函数原型 size t my strlen const char s 4 定义函数
  • struts2拦截器

    拦截器定义
  • vivado:debug状态下无法抓取数据。(已解决)

    这两天搞一个小项目 里面用到了SPI 时钟频率很低 我就设置了10MHz 结果 我在VC707的板子上跑 崩溃呀 跑都跑通了 但是用debug 怎么也抓取不到波形 一度怀疑是vivado 2017 4又存在重大bug 然后 仔细看了看他的报
  • Arthas常用命令

    目录 一 常用命令 二 常用系统命令 三 JVM相关命令 四 class classloader相关命令 五 高级命令 一 常用命令 1 dashboard 仪表板 第一部分是显示JVM中运行的所有线程 所在线程组 优先级 线程的状态 CP
  • 动态网站设计与开发总结

    接触到了动态网站设计与开发这门课程 老师先引入了动态网站 之后引导我们安装Web服务器 Tomcat和第一个Web项目 接着有Intellij创建Web项目 在Intellij上面创建动态页面 我们用jsp实现打印功能 将某一个页面设置为动
  • mysql核心数据库_MySQL核心基础(一)之数据库介绍

    一 数据库的相关概念及术语 一 数据 数据库 数据库系统 什么是数据 Data 广义上讲 全部可以传递和存储信息的东西都叫数据 而狭义上说是存储在计算机磁盘上的信息 mysql 什么是数据库 Database 数据库是指高效存放数据的地方s
  • unreal虚幻引擎学习(二)UE4工程无法调试

    工程如下设置即可
  • win 11 无法打出中文句号问题(中/英文标点切换) 微软五笔输入法

    问题 今天在用微信时 突然发现我打的 怎么这么窄 像英文输入法下的逗号 而不是中文输入法下的 同时发现句号也只是 而打不出 上网查了下 搜到第一条就是这篇win 10 word 打不出中文句号 微软拼音输入法 问题原因 误在某个时刻使用了
  • /dev/zero是什么意思

    原文链接 http www linuxdiyf com viewarticle php id 161384 dev zero 是一个输入设备 你可你用它来初始化文件 dev zero 该设备无穷尽地提供0 可以使用任何你需要的数目 设备提供
  • matplotlib-绘制条形图

    文章目录 绘制单个条形图 横着 竖着 绘制频数 率 分布直方图 绘制单个条形图 横着 竖着 设置字体 import matplotlib as mpl mpl rcParams axes unicode minus False mpl rc