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,一经查实,立即删除!

相关文章

【笔记】-编程语言以及应用领域

C/C 永远不会衰败的语言,适合偏底层,例如:Windows操作系统80%以上都是由C/C完成的,C/C也集成用于写应用层C/S架构的软件 JAVA 是真正的跨平台的语言 “一次编程,到处使用”Java适合应用层的开发,无论是…

Python的错误和异常

文章目录 python的语法错误异常异常处理用户自定义异常定义清理行为预定义的清理行为 python的语法错误 语法错误(Syntax Error)是指代码不符合Python语言的语法规则。当解释器在执行代码之前对其进行解析时,如果发现代码中有语法错误&#…

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

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

2403d,d的108版本更改

原文 编译器更改 1,在object.d中给TypeInfo_Class添加了.nameSig字段 2,总是在调用点求值像__FILE__此类关键字 3,现在可按整数数组转换十六进制串 4,添加支持插值式序列 库更改 1,isForwardRange,isBidirectionalRange和isRandomAccessRange现在带可选元素类型 2,std.uni已…

K8s 镜像缓存管理 kube-fledged 认知

写在前面 博文内容为K8s 镜像缓存管理 kube-fledged 认知内容涉及: kube-fledged 简单介绍部署以及基本使用 理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。…

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

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

Spring Data Redis 使用方式

在Java中操作Redis 1. 在Java中操作Redis1.1 Redis的Java客户端1.2 Spring Data Redis使用方式1.2.1 介绍1.2.1 环境搭建1.2.3 操作常见类型数据 1. 在Java中操作Redis 1.1 Redis的Java客户端 Redis 的 Java 客户端很多,常用的几种: JedisLettuceSpri…

关于Axios接口请求超时处理与重试的方法教程

在前端开发中,使用Axios作为HTTP客户端库进行接口请求是非常常见的做法。然而,在实际开发中,我们经常会遇到网络不稳定或服务器响应缓慢导致接口请求超时的情况。为了提高用户体验和程序的稳定性,我们需要实现接口请求超时的处理与…

UnityAPI的学习——Transform类

Transform类继承自Component类,并实现了IEnumberable接口。Transform是GameObject必须拥有得一个组件,用来管理所在GameObject对象的坐标位置、选择角度、和大小缩放。 Transform实现了IEnumberable接口,因此可以在程序中使用foreach()方法快…

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,等熟悉掌握后再考虑购买域名…

设计模式学习笔记——抽象工厂模式

设计模式(创建型)—— 抽象工厂模式 在工厂模式中,我们为每一个类都设计了一个工厂,以此来获取该类的对象,但缺点就是一旦类多了,工厂就多了,这时候我们可以考虑这些类间是否有关联&#xff0c…

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

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

kernel bypass 是什么?

文章目录 一、kernel bypass 是什么二、Kernel Bypass技术优缺点三、Kernel Bypass技术应用领域四、Kernel Bypass的实现方式 一、kernel bypass 是什么 Kernel Bypass是一种技术,旨在通过绕过操作系统核来提高网络数据包处理的性能和降低延迟。它的主要优点是高性能…

[LeetBook]【学习日记】有序链表合并

21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] …

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

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

如何使用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 测试…