matplotlib——散点图和条形图(python)

散点图

需求

我们获得北京2016年三月和十月每天白天最高气温,我们现在需要找出气温随时间变化的某种规律。

代码

# 导入库
from matplotlib import pyplot as plt
import random# 解决中文乱码
import matplotlib
matplotlib.rc("font",family="FangSong")# 初始化数据
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
y=y_3+y_10# 调整画布属性
plt.figure(figsize=(20,8),dpi=200)# 调整x/y轴的属性
x_3=range(1,32)
x_10=range(51,82)x=list(x_3)+list(x_10)
x_ticks=["三月{}日".format(i) for i in x_3]
x_ticks+=["十月{}日".format(i-50) for i in x_10]plt.xticks(x[::2],x_ticks[::2],rotation=45)
plt.yticks(range(min(y),max(y)+1))# 添加描述信息
plt.xlabel("日期")
plt.ylabel("温度(摄氏度)")# 绘制散点图
plt.scatter(x_3,y_3,label="三月")
plt.scatter(x_10,y_10,label="十月")
plt.legend()# 展示散点图
plt.show()

效果

在这里插入图片描述

说明

散点图和折线图很多一样,就是把最后的plt.plot改成plt.scatter即可


条形图

需求

假如你获取到2017年内地电影票房前20的电影和电影票房数据

第一版

代码
from matplotlib import pyplot as plt
import matplotlib# 解决中文乱码
matplotlib.rc("font",family="FangSong")# 初始化数据
x = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]y = [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,8),dpi=200)# 设置x轴
plt.xticks(range(len(x)),x,rotation=270)# 绘制条形图
plt.bar(range(len(x)),y,color="b")
plt.show()
效果

在这里插入图片描述

说明

和折线图没什么改变,就是在最后绘制时(plt.bar)传参数时只能传含数字的可迭代对象(说人话就是,传一个数字列表,对应x轴和y轴数据)


第二版

代码
from matplotlib import pyplot as plt
import matplotlib# 解决中文乱码
matplotlib.rc("font",family="FangSong")# 初始化数据
x = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]y = [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,8),dpi=200)
plt.yticks(range(len(x)),x)# 将图形横过来
plt.barh(range(len(x)),y,height=0.3,color="orange")# 设置网格
plt.grid(alpha=.4)plt.show()
效果

在这里插入图片描述

说明

把图形横过来数据会更加直观,我们只需要将plt.bar改成plt.barh即可


进阶练习

需求

假设你知道四个电影分别在2017-09-14,2017-09-15,2017-09-16三天的票房,为了展示列表中电影本身的票房以及同其他电影的数据对比情况。

代码
from matplotlib import pyplot as plt
import matplotlib# 解决中文乱码
matplotlib.rc("font",family="FangSong")# 初始化数据x = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
y_16 = [15746,312,4497,319]
y_15 = [12357,156,2045,168]
y_14 = [2358,399,2358,362]plt.figure(figsize=(20,8),dpi=200)# 设置偏移量
bar_width=0.2# 设置每个日期条形块的位置
# x_14在最左边,然后x_15在x_14右边,x_16在x_15右边,依次偏移
x_14=list(range(len(x)))
x_15=[i+bar_width for i in x_14]
x_16=[i+bar_width*2 for i in x_14]# 设置x轴刻度
plt.xticks(x_15,x)# 绘制条形图,因为有三个日期,所以要绘制三次
plt.bar(x_14,y_14,width=bar_width,label="九月十四日")
plt.bar(x_15,y_15,width=bar_width,label="九月十五日")
plt.bar(x_16,y_16,width=bar_width,label="九月十六日")# 设置标签
plt.xlabel("电影")
plt.ylabel("票房")
plt.title("九月十四日至十六日电影票房变化")plt.legend()
plt.show()
效果

在这里插入图片描述

说明

这个条形图有点复杂,主要是画三个条形图在一张画布上。我们要设置每个条形图的偏移量,使得这些条形图不重叠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

领域驱动设计(Domain-Driven Design DDD)——战略设计1

一、概述 随着系统的增长,它会越来越复杂,当我们无法通过分析对象来理解系统的时候,就需要掌握一些操纵和理解大模型的技术了。 最负雄心的企业欲实现一个涵盖所有业务、紧密集成的系统。因大型公司的业务模型巨大且复杂,很难把它…

springboot236基于springboot在线课程管理系统的设计与实现

基于SpringBoot在线课程管理系统的设计与实现 摘要 本文首先介绍了在线课程管理系统的现状及开发背景,然后论述了系统的设计目标、系统需求、总体设计方案以及系统的详细设计和实现,最后对在线课程管理系统进行了系统检测并提出了还需要改进的问题。本系…

echarts vue 动画效果的水球图、波浪图教程

1、安装插件 前提是已经安装了echarts(我的版本是4.2.1) npm install echarts-liquidfill --save 我安装了3.1.0版本的,结果运行时报错"TypeError: wave.ensureState is not a function" 原因:echarts版本和echarts-l…

miniconda3彻底删除虚拟环境

退出虚拟环境:确保您不在要删除的虚拟环境中。如果在,使用命令 conda deactivate 来退出当前激活的虚拟环境。查看虚拟环境列表:运行命令 conda env list 或 conda info -e 来查看所有存在的虚拟环境及其路径。删除虚拟环境:使用命…

在VMware中安装CentOS 7并配置Docker

VMware安装CentOS 7 一、介绍 该文章介绍如何使用启动U盘在虚拟机里面安装系统,虚拟机版本为VMware Workstation 16 pro,Linux版本为CentOS Linux release 7.9.2009 (Core)。 二、安装 1、创建虚拟机 点击创建新的虚拟机 选择典型就可以了&#xf…

前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)

一、前缀和的原理和特点 prefix表示前缀和,前缀和由一个用户输入的数组生成。对于一个数组a[](下标从1开始),我们定义一个前缀和数组prefix[],满足: prefix有一个重要的特性,可以用于快速生成p…

WordPress建站入门教程:如何安装本地WordPress网站运行环境?

有些站长想要搭建WordPress网站,又担心自己玩不转,白白浪费购买域名和主机空间的费用。像这种情况,最好的做法就是在自己电脑上安装一个WordPress网站运行环境,然后在本地电脑搭建WordPress,等熟悉掌握后再考虑购买域名…

多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测

多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测 目录 多输入多输出 | MATLAB实现GWO-Elman灰狼优化循环神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现GWO-Elman灰狼优化循环神经网络多输入多输出…

如何在电脑上中恢复已删除的视频

您可以在电脑中恢复已删除的视频,无需任何繁琐的工作。您所需要做的就是阅读本文,了解恢复已删除视频的最佳方法。 一次错误的点击可能会夺走您以视频形式存储的宝贵记忆。嗯,有些视频不适合删除,您希望永远保留它们。失去这些宝…

如何使用Docker搭建StackEdit编辑器并结合内网穿透实现远程办公

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

优选算法|【双指针】|1089.复写零

目录 题目描述 题目解析 算法原理讲解 代码 题目描述 1089. 复写零 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就…

LeetCode受限条件下可到达节点的数目

题目描述 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restr…

OJ:移除链表元素

203. 移除链表元素 - 力扣(LeetCode) 思路:这个题可以直接在原链表上进行修改,但是修改链表的指向是有点麻烦的,所以我们给两个指针,phead和ptail,这是新链表的两个指针,再给一个指针pcur来遍历…

Sqli-labs靶场第12关详解[Sqli-labs-less-12]

Sqli-labs-Less-12 #手工注入 post传参了 根据题目看,像一个登录页面,尝试使用布尔型盲注测试能否登录网站 1. Username输入a a" 测试是否会有报错,burp抓包 报错:syntax to use near "a"") and passw…

消息中间件之RocketMQ源码分析(二十七)

Broker提交或回滚事务消息 当生产者本地事务处理完成并且Broker回查事务消息后,不管执行Commit还是Rollback,都会根据用户本地事务的执行结果发送一个End_transaction的RPC请求给Broker,Broker端处理该请求的类是EndTransactionProcessor 第一步&…

volatile 关键字 (一)

volatile 关键字 (一) 文章目录 volatile 关键字 (一)如何保证变量的可见性?如何禁止指令重排序? 文章来自Java Guide 用于学习如有侵权,立即删除 如何保证变量的可见性? 在 Java 中…

【Linux安装软件命令及vim、gcc使用说明】

安装软件命令 Linux安装软件的命令首先要进入管理员权限 首先在终端输入sudo su切换到管理员界面 输入对应的密码,注意这里的密码不会显示出来,输完密码之后回车即可。当出现root就代表已经是管理员界面了。 如果相应退出管理员界面输入exit即可。 注…

数组、冒泡排序、函数、作用域、对象、Math

数组 1.定义数组: a)通过字面量的方式定义数组 let ary[1,2,3,4]b)通过定义构造函数的方式定义数组: let 数组名new Array(值,值,值);数组的操作方式 a)增 //在数组末尾添加值 arr.push(新增的内容) //在数组的开始添加值 arr.unshift(新增的内容)b…

Redis主从复制+Redis哨兵模式+Redis群集模式

Redis主从复制Redis哨兵模式Redis群集模式一、Redis主从复制1、主从复制的作用2、主从复制过程3、搭建Redis主从复制3.1 所有节点服务器安装redis3.2 修改Redis配置文件(Master节点操作)3.3 修改Redis配置文件(Slave节点操作)3.4 验证主从效果 二、Redis哨兵模式1、哨兵模式的作…

8、IBOScms代码审计

一、sql注入 1、sql注入(Ⅰ) 限制 rreport/api/getlist {"offset":0,"type":"send","keyword":{"subject":"111) AND (updatexml(1,concat(0x7e,(select user()),0x7e),1))-- qw"}}复现 POST /?rreport/api/…