Matplotlib数据可视化实战-2绘制折线图(2)

2.11营业额可视化

已知某学校附近一个烧烤店2022年每个月的营业额如下图所示。编写程序绘制折线图对该烧烤店全年营业额进行可视化,使用红色点画线连接每个月的数据,并在每个月的数据处使用三角形进行标记。

烧烤店营业额
月份123456789101112
营业额/万元5.22.75.85.77.39.218.715.620.518.01.86.9

运行结果如下:

import matplotlib.pyplot as plt# 月份和每月营业额
month = range(1, 13)
money = [5.2, 2.7, 5.8, 5.7, 7.3, 9.2, 18.7, 15.6, 20.5, 18.0, 7.8, 6.9]plt.plot(month, money, 'r-.v', mfc='b', mec='y')
plt.xlabel('月份', fontproperties='simhei', fontsize=14)
plt.ylabel('营业额(万元)', fontproperties='simhei', fontsize=14)
plt.title('烧烤店2022年营业额变化趋势图', fontproperties='simhei', fontsize=18)
# 紧缩四周空白,扩大绘图区域可用面积
plt.tight_layout()plt.show()

参数mfc(marker face color)用来设置散点符号内部颜色

参数mec(marker edge color)设置散点符号边线颜色 

 

2.12绘制折线图模拟连续信号与数字信号

import numpy as np
import matplotlib.pyplot as pltt = np.arange(0, 6*np.pi, 0.05)
# 连续信号与数字信号的函数值
t_sin = np.sin(t)
t_digital1 = np.piecewise(t_sin, [t_sin>0, t_sin<0], [1,-1])
t_digital2 = np.round_(t_sin)plt.plot(t, t_sin, label='$sin(x)$', color='red', lw=1)
plt.plot(t, t_digital1, 'b--', label='digital1')
plt.plot(t, t_digital2, 'g-.', label='digital2')
plt.ylim(-2.0, 2.0)
plt.legend()plt.show()

 

2.13在第一象限中,任意反比例函数xy=k与任意矩形OABC的两个交点的连线始终与矩形的对角线平行,请编写程序验证这一点。

import numpy as np
import matplotlib.pyplot as pltk = 1                                          # 反比例函数xy=k的常数k
m, n = 6, 3                                    # 矩形右上角坐标(m,n)
x = np.arange(0.1, m+0.5, 0.02)                # 第一象限中反比例函数曲线上顶点的x坐标
y = k / x                                      # 根据反比例函数xy=k计算顶点y坐标
plt.plot(x, y, 'b')                            # 绘制第一象限指定区间内的反比例函数图像plt.plot([0,m,m,0,0], [0,0,n,n,0], 'r')        # 绘制矩形,从左下角出发,向右、上、左、下
plt.plot([0,m], [n,0], 'g')                    # 矩形对角线
plt.plot([k/n,m], [n,k/m], 'g')                # 矩形与反比例函数的交点连线for x, y, ch in zip([0,m,m,0,k/n,m], [0,0,n,n,n,k/m], 'OABCDE'):plt.text(x, y+0.02, ch)                    # 绘制顶点与交点的符号
plt.xlim(-0.1, m+1)                            # 设置坐标轴跨度
plt.ylim(-0.1, n+1)
plt.title(f'k={k},m={m},{n=}', fontsize=20)   # 设置图形标题
plt.gca().set_aspect(True)                     # 设置图形纵横比相等plt.show()                                     # 显示图形

2.14绘制函数曲线,计算并标记极值 

import numpy as np
import matplotlib.pyplot as plt# 函数自变量取值范围区间
start, end = 0, 10
# 计算所有采样点的x坐标、y坐标,绘制折线图
x = np.arange(start, end, 0.01)
y = 3*np.sin(x) + 5*np.cos(3*x)
s, = plt.plot(x, y, 'r-')
# 设置子区间长度,在每个子区间(不包含端点)内寻找极值
# 调整区间大小时会影响极值数量,应使得每个子区间内都包含波峰和波谷
span = 66for start in range(0, len(y), span):# 每个子区间的自变量与函数值sectionY = y[start:start+span]sectionX = x[start:start+span]# 局部最大值和局部最小值localMax = sectionY.max()localMin = sectionY.min()# 方案一:# 按值大小升序排序的索引argsort_result = sectionY.argsort()# 区间内所有最大值的索引和所有最小值的索引args_max = argsort_result[-len(sectionY[sectionY==localMax]):]args_min = argsort_result[:len(sectionY[sectionY==localMin])]# 去除子区间端点args_max = list(set(args_max)-{0,span-1})if args_max:s1 = plt.scatter(sectionX[args_max], sectionY[args_max], marker='*', c='b')args_min = list(set(args_min)-{0,span-1})if args_min:s2 = plt.scatter(sectionX[args_min], sectionY[args_min], marker='*', c='g')# 方案二:
##    for index, yy in enumerate(sectionY):
##        if yy==localMax and index not in (0, span-1):
##            # 在极大值处绘制一个蓝色五角星
##            s1 = plt.scatter(sectionX[index], yy, marker='*', c='b')
##        elif yy==localMin and index not in (0, span-1):
##            # 在极小值处绘制一个绿色五角星
##            s2 = plt.scatter(sectionX[index], yy, marker='*', c='g')# 创建图例
plt.legend([s,s1,s2], ['curve','local max','local min'])
#显示绘制的结果
plt.show()

2.15使用折线图可视化角谷猜想

角谷猜想,也被称为“冰雹猜想”或“3n+1猜想”,是一个数学上的未解问题。这个猜想的内容是,对于任意一个正整数,如果是奇数,则乘3再加1,如果是偶数,则除以2,这样得到的结果再按照上述规则重复处理,最终总能够得到1。

角谷猜想的名称来源于其在不同地方的流传历史。它首先在美国流传开来,然后传播到欧洲。后来,一位名叫角谷的日本人将其带到亚洲,因此得名“角谷猜想”。而“冰雹猜想”的名称则来源于这个猜想处理数字时数字上上下下的变化过程,就像冰雹在高空中形成并落下的过程一样。

尽管角谷猜想自提出以来已经经过了许多数学家的研究,但至今仍然没有找到证明或反证。这个猜想在数学界引起了广泛的关注,甚至有一些数学家悬赏求解。

from random import choice, seed
import matplotlib.pyplot as pltdef check(num):times = 0         # 变为1所需要的次数numbers = [num]   # 变为1的过程中的所有数字while True:times = times + 1if num%2 == 0:num = num // 2else:num = num*3 + 1numbers.append(num)if num == 1:# 变为1时结束循环breakreturn range(times+1), numbersseed(20220702)
for _ in range(6):num = choice(range(1, 9999))plt.plot(*check(num), label=str(num))plt.legend()
plt.show()

 2.16角谷猜想中正整数最终变为1所需要的计算次数

 

from random import randrange, seed
import matplotlib.pyplot as pltdef check(num):times = 0while True:times = times + 1if num%2 == 0:num = num // 2else:num = num*3 + 1if num == 1:breakreturn timesticks = []
seed(20220702)
for _ in range(6):num = randrange(1, 9999)tick = check(num)ticks.append(tick)# 第一个参数表示y坐标,表示每个柱的位置,对应变为1所需要的次数# 第二个参数表示长度,对应要变为1的数字plt.barh(tick, num, label=str(num))
# 在每个柱对应的位置显示刻度
plt.yticks(ticks)
plt.legend()plt.show()

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

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

相关文章

Redis - 5k star! 一款简洁美观的 Redis 客户端工具~

项目简介 Tiny RDM 是一款现代化、轻量级的跨平台 Redis 桌面客户端&#xff0c;可在 Mac、Windows 和 Linux 系统上运行。初次打开 Tiny RDM&#xff0c;你会被它舒适的风格和配色所吸引&#xff0c;界面简约而不简单&#xff0c;功能齐全。 Tiny RDM 有着如下的功能特性 项…

男生t恤什么牌子好?男士T恤品牌推荐?

很多男士朋友最近都打算准备一套春夏季穿的短袖&#xff0c;但奈何当前的市场上充斥着大量低劣质的衣裤。这些产品的质量普遍不耐穿、耐洗&#xff0c;并且版型不好等情况。为此我特意为大家整理五个质量好且价格不贵的五个男装品牌。希望能够帮助到大家挑选到合适的短袖。 因为…

保研线性代数机器学习基础复习1

1.什么是代数&#xff08;algebra&#xff09;? 为了形式化一个概念&#xff0c;构建出有关这个概念的符号以及操作符号的公式。 2.什么是线性代数&#xff08;linear algebra&#xff09;&#xff1f; 一项关于向量以及操作向量的公式的研究。 3.举一些向量的例子&#x…

【opencv】教程代码 —ImgProc (7)使用维纳滤波器来恢复失焦的图像

7. out_of_focus_deblur_filter.cpp使用维纳滤波器来恢复失焦的图像 代码的主要功能是通过使用维纳滤波器来恢复失焦的图像&#xff0c;它读取一个灰度图像文件&#xff0c;对其进行滤波操作&#xff0c;并将结果保存为新文件。这个过程包括计算点扩散函数(PSF)&#xff0c;执行…

机器学习模型——KNN

KNN的基本概念&#xff1a; KNN(K-Nearest Neighbor)就是k个最近的邻居的意思&#xff0c;即每个样本都可以用它最接近的k个邻居来代表。KNN常用来处理分类问题&#xff0c;但也可以用来处理回归问题。 核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某…

python实现在线 ChatGLM调用

python实现在线 ChatGLM调用 1. 申请调用权限&#xff1a; 收钱进入到质谱AI开放平台&#xff0c;点击“开始使用”或者“开发者工具台”进行注册&#xff1a; 对于需要使用 API key 来搭建应用的话&#xff0c;需要点击右边红框中的查看 API key&#xff0c;就会进入到我们…

yolov8 pose keypoint解读

yolov8进行关键点检测的代码如下&#xff1a; from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # pretrained YOLOv8n model# Run batched inference on a list of images results model([im1.jpg, im2.jpg]) # return a list of Results objects# Pr…

读所罗门的密码笔记04_社会信用

1. 人工智能 1.1. 人工智能可以帮助人们处理复杂的大气问题&#xff0c;完善现有的气候变化模拟&#xff0c;帮助我们更好地了解人类活动对环境造成的危害&#xff0c;以及如何减少这种危害 1.2. 人工智能也有助于减少森林退化和非法砍伐 1.3. 人工智能甚至可以将我们从枯燥…

RISC-V特权架构 - 中断定义

RISC-V特权架构 - 中断定义 1 中断类型1.1 外部中断1.2 计时器中断1.3 软件中断1.4 调试中断 2 中断屏蔽3 中断等待4 中断优先级与仲裁5 中断嵌套6 异常相关寄存器 本文属于《 RISC-V指令集基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 中断类型 RISC-V 架构定义的中…

idea打开文件乱码,设置编码

idea整个项目都设置了utf-8了&#xff0c;但是还是有一个文件是其他编码_(ཀ」 ∠)__ 。 配置项目编码 在设置中设置编码 配置具体目录的编码 上面的设置之后&#xff0c;还是有几个文件一直是乱码&#xff0c;需要单独配置。 偶尔引入的依赖中的文件也会乱码&#xff0c;需…

题目:摆花(蓝桥OJ 0389)

问题描述&#xff1a; 题解&#xff1a; #include <bits/stdc.h> using namespace std; using ll long long; const int N 105; const ll p 1e6 7; ll a[N], dp[N][N];int main() {int n, m; cin >> n >> m;for(int i 1; i < n; i)cin >> a[i…

【科研基础】VAE: Auto-encoding Variational Bayes

[1]Kingma, Diederik P., and Max Welling. “Auto-encoding variational bayes.” arXiv preprint arXiv:1312.6114 (2013). [2] [论文简析]VAE: Auto-encoding Variational Bayes[1312.6114] [3] The Reparameterization Trick [4] 变分法的基本原理是什么? 文章目录 1-…

我的编程之路:从非计算机专业到Java开发工程师的成长之路 | 学习路线 | Java | 零基础 | 学习资源 | 自学

小伙伴们好&#xff0c;我是「 行走的程序喵」&#xff0c;感谢您阅读本文&#xff0c;欢迎三连~ &#x1f63b; 【Java基础】专栏&#xff0c;Java基础知识全面详解&#xff1a;&#x1f449;点击直达 &#x1f431; 【Mybatis框架】专栏&#xff0c;入门到基于XML的配置、以…

负荷频率控制LFC,自抗扰ADRC控制,麻雀SSA算法优化自抗扰参数,两区域二次调频simulink/matlab

红色曲线为优化结果&#xff0c;蓝色曲线为没有自抗扰和没有优化的结果&#xff01;

基于springboot实现蜗牛兼职网平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现蜗牛兼职网平台系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景&#xff…

【C语言】多文件编程以及static关键字

1、多文件编程 把函数声明放在头文件xxx.h中&#xff0c;在主函数中包含相应头文件在头文件对应的xxx.c中实现xxx.h声明的函数 a、主文件 #include<stdio.h> #include "MyMain.h"//需要包含头文件&#xff0c;头文件包含我们自定义的函数int main(){int num…

6、鸿蒙学习-Stage模型应用程序包结构

基于Stage模型开发的应用&#xff0c;经编译打包后&#xff0c;其应用程序的结构如下图应用程序包结构&#xff08;Stage模型&#xff09;所示。开发者需要熟悉应用程序包结构相关的基本概念。 一、在开发态&#xff0c;一个应用包含一个或者多个Module&#xff0c;可以在DevE…

【管理咨询宝藏60】顶级咨询公司对医药行业的研究报告

【管理咨询宝藏60】顶级咨询公司对医药行业的研究报告 【格式】PDF 【关键词】医疗行业、战略咨询、行业洞察 【核心观点】 - 195页精品内容&#xff0c;让你彻底透视医疗行业的发展现状和未来趋势 - 前20大交易约占医疗交易总额的65%&#xff1b;医疗行业大部分为制药业投资交…

c++的学习之路:5、类和对象(1)

一、面向对象和面向过程 在说这个定义时&#xff0c;我就拿c语言举例&#xff0c;在c语言写程序的时候&#xff0c;基本上就是缺什么函数&#xff0c;就去手搓一个函数&#xff0c;写的程序也只是调用函数的&#xff0c;而c就是基于面向对象的开发&#xff0c;他关注的不再是单…

DFS算法(C/C++)(内含立例题)

DFS&#xff1a; DFS又称深度优先搜索&#xff0c;是一种图运算方法&#xff0c;它从第一个节点走起&#xff0c;一直往下走&#xff0c;一直走到不能继续再走&#xff0c;就返回上一个节点&#xff0c;继续搜索其他地方&#xff0c;直到找到目标节点为止。 DFS可以解决迷宫问…