数学建模--Python绘图

news2024/11/25 22:56:36

目录

1.绘制散点图

  1.1.绘制过程解释

  1.2.绘制图像代码 

  1.3.绘制图像展示

 2.绘制折线统计图

  2.1.绘制过程解释

   2.2.绘制图像代码 

  2.3.绘制图像展示 

 3.绘制柱形图

  3.1.绘制图像解释

     3.2.绘制图像代码

   3.3.绘制图像展示 

 4.多种图形的综合绘制

   4.1.绘制图像解释

  4.2.绘制图像代码 

  4.3.绘制图像展示 

  5.源代码汇总展


1.绘制散点图

  1.1.绘制过程解释

1.首先给定10个数据并用x与y相表示。
2.调用scatter函数来进行散点图的绘制。
3.color表示颜色,marker表示线形,linewidths表示线宽。

  1.2.绘制图像代码 

#%%
#数学建模简单入手Python绘图
import matplotlib.pyplot as plt
#1.matplotlib和seaborn库的使用
#1.1.scatter函数绘制散点图
x=[1,2,3,4,5,6,7,8,9,10]
y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
plt.scatter(x,y,color='r',marker='*',linewidths=8)

  1.3.绘制图像展示

 2.绘制折线统计图

  2.1.绘制过程解释

1.首先给定x的取值范围
2.再简单不加修饰绘制两个函数
3.改变图像的线形和颜色
4.对于坐标轴进行美化处理
5.改变坐标轴中3.14并且用Π来进行取代

   2.2.绘制图像代码 

#%%
#1.2.绘制折线统计图
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
first_fun=np.cos(x)+np.sin(x)
second_fun=np.sin(x)-np.cos(x)
first_fun=first_fun+np.random.rand(256)*0.4
second_fun=second_fun+np.random.rand(256)*0.4
#设置图像的分辨率为
plt.rcParams['figure.dpi'] = 100
#基础不加修改的绘制图片
plt.plot(x,first_fun)
plt.plot(x,second_fun)
#进阶改变线型和颜色的绘图
plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
#继续对坐标轴进行一个美化
x_min=x.min()
y_min=first_fun.min()
x_max=x.max()
y_max=first_fun.max()
dx=(x_max-x_min)*0.4
dy=(y_max-y_min)*0.4
plt.xlim(x_min-dx,x_max+dx)
plt.ylim(y_min-dy,y_max+dy)
plt.xticks([-np.pi*2,-np.pi*1.5,-np.pi,-np.pi*0.5,0,np.pi*0.5,np.pi,np.pi*1.5,np.pi*2])
plt.yticks([-1,-1.5,0,1,1.5])
#将3.14换成兀
plt.xticks([-np.pi*2,-np.pi*3/2,-np.pi, -np.pi/2, 0, np.pi/2, np.pi,np.pi*1.5,np.pi*2],[r'$-2\pi$',r'$-3/2\pi$',r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$',r'$3/2\pi$',r'$2\pi$'])
plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
plt.show()

  2.3.绘制图像展示 

 3.绘制柱形图

  3.1.绘制图像解释

1.首先建立一块能够绘制四张图片的幕布
2.然后进行第一张图片的绘制和信息的标注
3.然后进行第二张图片的绘制和信息的标注
4.然后进行第三张图片的绘制和信息的标注
5.然后进行第四张图片的绘制和信息的标注
6.最后再利用函数将其的变得紧凑合适

     3.2.绘制图像代码

#%%
#1.3.绘制柱形图
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
e_bins=10
x=np.random.randn(1000,3)
#设置分辨率
plt.rcParams['figure.dpi'] = 200 #分辨率
#设置多图像的图片位置
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
#设置颜色和图标
#绘制第一张图1/4
colom0=['red','tan','lime']
ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
ax0.legend(prop={'size': 10})#设置图列的大小为10
ax0.set_title('bars with legend')#设置图片标题名字
#绘制第二张图2/4
colom1=['Bob','Jack','Lucy']
ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
ax1.legend(prop={'size':10})
ax1.set_title("stack bar")
#绘制第三张图3/4
colom2=['aaa','bbb','ccc']
ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
ax2.legend(prop={'size':10})
ax2.set_title("unfilled stacked bar")
#绘制第四张图4/4
colom3=['figure1','figure2','figure3']
multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
ax3.hist(multi, e_bins, histtype='bar',label=colom3)
ax3.legend(prop={'size':10})
ax3.set_title('different sample example')
#进行一下图片的调整
fig.tight_layout()
plt.show()

   3.3.绘制图像展示 

 4.多种图形的综合绘制

   4.1.绘制图像解释

1.建立一块能够同时绘制三张图大小的幕布
2.创建并且给定数据及其取值范围
3.绘制中心第一张散点图
4.绘制上方和右方的条形统计图
5.对于冲突的坐标给予隐藏
6.再次调整并且美化轴间的宽度

  4.2.绘制图像代码 

#%%
#1.4.多种图片的结合
#进行库文件的引用
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

#给定足够多的数据点
np.random.seed(19680801)

#给定随机的x与y的区间值
x = np.random.randn(1000)
y = np.random.randn(1000)

#创建绘图幕布
fig, ax = plt.subplots(figsize=(5.5, 5.5))

#中心散点图的绘制
ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
ax.set_aspect(1.)

#再创建新两张图片
divider = make_axes_locatable(ax)
#给定两张图片的宽高和位置
ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)

#隐藏上图的x坐标
ax_histx.xaxis.set_tick_params(labelbottom=False)
#隐藏下图的y坐标
ax_histy.yaxis.set_tick_params(labelleft=False)

#进行调整x的距离
binwidth = 0.25
xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
lim = (int(xymax/binwidth) + 1)*binwidth
#开始绘制图片
bins = np.arange(-lim, lim + binwidth, binwidth)
ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)

#确定条形统计的xy区间范围
ax_histx.set_yticks([0, 50, 100])
ax_histy.set_xticks([0, 50, 100])

plt.show()

  4.3.绘制图像展示 

 5.源代码汇总展示

#%%
#数学建模简单入手Python绘图
import matplotlib.pyplot as plt
#1.matplotlib和seaborn库的使用
#1.1.scatter函数绘制散点图
x=[1,2,3,4,5,6,7,8,9,10]
y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
plt.scatter(x,y,color='r',marker='*',linewidths=8)
#%%
#1.2.绘制折线统计图
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
first_fun=np.cos(x)+np.sin(x)
second_fun=np.sin(x)-np.cos(x)
first_fun=first_fun+np.random.rand(256)*0.4
second_fun=second_fun+np.random.rand(256)*0.4
#设置图像的分辨率为
plt.rcParams['figure.dpi'] = 100
#基础不加修改的绘制图片
plt.plot(x,first_fun)
plt.plot(x,second_fun)
#进阶改变线型和颜色的绘图
plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
#继续对坐标轴进行一个美化
x_min=x.min()
y_min=first_fun.min()
x_max=x.max()
y_max=first_fun.max()
dx=(x_max-x_min)*0.4
dy=(y_max-y_min)*0.4
plt.xlim(x_min-dx,x_max+dx)
plt.ylim(y_min-dy,y_max+dy)
plt.xticks([-np.pi*2,-np.pi*1.5,-np.pi,-np.pi*0.5,0,np.pi*0.5,np.pi,np.pi*1.5,np.pi*2])
plt.yticks([-1,-1.5,0,1,1.5])
#将3.14换成兀
plt.xticks([-np.pi*2,-np.pi*3/2,-np.pi, -np.pi/2, 0, np.pi/2, np.pi,np.pi*1.5,np.pi*2],[r'$-2\pi$',r'$-3/2\pi$',r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$',r'$3/2\pi$',r'$2\pi$'])
plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
plt.show()
#%%
#1.3.绘制柱形图
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
e_bins=10
x=np.random.randn(1000,3)
#设置分辨率
plt.rcParams['figure.dpi'] = 200 #分辨率
#设置多图像的图片位置
fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
#设置颜色和图标
#绘制第一张图1/4
colom0=['red','tan','lime']
ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
ax0.legend(prop={'size': 10})#设置图列的大小为10
ax0.set_title('bars with legend')#设置图片标题名字
#绘制第二张图2/4
colom1=['Bob','Jack','Lucy']
ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
ax1.legend(prop={'size':10})
ax1.set_title("stack bar")
#绘制第三张图3/4
colom2=['aaa','bbb','ccc']
ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
ax2.legend(prop={'size':10})
ax2.set_title("unfilled stacked bar")
#绘制第四张图4/4
colom3=['figure1','figure2','figure3']
multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
ax3.hist(multi, e_bins, histtype='bar',label=colom3)
ax3.legend(prop={'size':10})
ax3.set_title('different sample example')
#进行一下图片的调整
fig.tight_layout()
plt.show()
#%%
#绘制饼形条状统计图
import matplotlib.pyplot as plt
import numpy as np
#设置分辨率为200
plt.rcParams['figure.dpi'] = 200
#生成随机种子数据
np.random.seed(19680801)
jiaodu=np.linspace(0,2*np.pi,15,endpoint=False)
r=10*np.random.rand(15)
width=np.pi/4*np.random.rand(15)
colors = plt.cm.viridis(r/ 10.)

ax=plt.subplot(111,projection='polar')
ax.bar(jiaodu,r,width=width,bottom=0,color=colors,alpha=0.5)
plt.show()
#%%
#1.4.多种图片的结合
#进行库文件的引用
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

#给定足够多的数据点
np.random.seed(19680801)

#给定随机的x与y的区间值
x = np.random.randn(1000)
y = np.random.randn(1000)

#创建绘图幕布
fig, ax = plt.subplots(figsize=(5.5, 5.5))

#中心散点图的绘制
ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
ax.set_aspect(1.)

#再创建新两张图片
divider = make_axes_locatable(ax)
#给定两张图片的宽高和位置
ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)

#隐藏上图的x坐标
ax_histx.xaxis.set_tick_params(labelbottom=False)
#隐藏下图的y坐标
ax_histy.yaxis.set_tick_params(labelleft=False)

#进行调整x的距离
binwidth = 0.25
xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
lim = (int(xymax/binwidth) + 1)*binwidth
#开始绘制图片
bins = np.arange(-lim, lim + binwidth, binwidth)
ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)

#确定条形统计的xy区间范围
ax_histx.set_yticks([0, 50, 100])
ax_histy.set_xticks([0, 50, 100])

plt.show()

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

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

相关文章

二级web操作题(1-6)

第二套 1.对数组排序 <html> <title>对数组排序</title> <body> <script> //生成一个m、n之间的整数 function rand(m,n){ /* **********Found********** */ var iMath.random(); /* **********Found********** */ return Math.round((n-m…

内存管理之:内存空间分布和栈攻击(黑客常用攻击手段)

目录 C语言内存管理及栈攻击 内存管理 Linux虚拟内存空间分布&#xff08;重要&#xff09; 栈溢出&#xff08;栈攻击&#xff09; 堆栈的特点 栈攻击 栈攻击的实现 原理 编译器选项 实现案例 linux修改栈空间大小方式 内存泄漏 如何避免野指针&#xff1f; 如何…

C++智能指针之weak_ptr(保姆级教学)

目录 C智能指针之weak_ptr 概述 作用 本文涉及的所有程序 使用说明 weak_ptr的常规操作 lock(); use_count(); expired(); reset(); shared_ptr & weak_ptr 尺寸 智能指针结构框架 常见使用问题 shared_ptr多次引用同一数据&#xff0c;会导致两次释放同一内…

Medium:How to check the correctness of the AB test?

有以下两种错误&#xff1a; 通常&#xff0c;type 1 error is more important&#xff01;因此我们type 2 error就是在“委曲求全”&#xff1a; The probability of Type II error can be adjusted to the desired value by changing the size of the groups or by reducing…

【LeetCode每日一题合集】2023.8.14-2023.8.20(⭐切披萨3n块披萨)

文章目录 617. 合并二叉树833. 字符串中的查找与替换&#xff08;模拟&#xff09;2682. 找出转圈游戏输家&#xff08;模拟&#xff09;1444. 切披萨的方案数&#xff08;⭐⭐⭐⭐⭐&#xff09;解法——从递归到递推到优化&#xff08;二维前缀和记忆化搜索&#xff09; 1388…

【LeetCode每日一题合集】2023.8.7-2023.8.13(动态规划分治)

文章目录 344. 反转字符串1749. 任意子数组和的绝对值的最大值&#xff08;最大子数组和&#xff09;1281. 整数的各位积和之差1289. 下降路径最小和 II解法1——动态规划 O ( n 3 ) O(n^3) O(n3)解法2——转移过程优化 O ( n 2 ) O(n^2) O(n2) ⭐ 1572. 矩阵对角线元素的和解法…

13.Redis 事务

Redis 事务 redis 事务事务操作multi 开启事务exec 执行事务discard 放弃当前事务watchunwatch redis 事务 Redis 的事务和 MySQL 的事务概念上是类似的。 都是把⼀系列操作绑定成⼀组。 让这⼀组能够批量执⾏。 Redis 的事务和 MySQL 事务的区别: 弱化的原⼦性: 这里指的是 …

Pinely Round 2 (Div. 1 + Div. 2) G. Swaps(组合计数)

题目 给定一个长度为n(n<1e6)的序列&#xff0c;第i个数ai(1<ai<n)&#xff0c; 操作&#xff1a;你可以将当前i位置的数和a[i]位置的数交换 交换可以操作任意次&#xff0c;求所有本质不同的数组的数量&#xff0c;答案对1e97取模 思路来源 力扣群 潼神 心得 感…

huggingface下载模型文件(基础入门版)

huggingface是一个网站&#xff0c;类似于github&#xff0c;上面拥有众多开源的模型、数据集等资料&#xff0c;人工智能爱好者可以很方便的上面获取需要的数据&#xff0c;也可以上传训练好的模型&#xff0c;制作的数据集等。本文只介绍下载模型的方法&#xff0c;适合新手入…

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)

1. 说明 SpringBoot项目&#xff0c;连接MySQL数据库&#xff0c;使用Mybatis框架。 本篇文章作为 SpringBoot 使用 Mybatis 的入门。 2. 依赖 2.1. MySQL驱动依赖 MySQL驱动&#xff0c;使用SpringBoot版本对应的默认版本&#xff0c;不需要手动指定版本。 比如&#xf…

【狂神】Spring5 (三) 之Aop的实现方式

今天没有偷懒&#xff0c;只是忘了Mybatis&#xff0c;所以去补课了~ ┏━━━━━━━━━━━━━━━┓ NICE PIGGY PIG.. ┗━━━━━━━△━━━━━━━┛ ヽ(&#xff65;ω&#xff65;)&#xff89; | / UU 1.Aop实现方式一 1.1、什…

UG\NX CAM二次开发 查询工序所在的方法组TAG UF_OPER_ask_method_group

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 查询工序所在的方法组TAG UF_OPER_ask_method_group 效果: 代码: void MyClass::do_it() { int count=0;tag_t * objects;UF_UI_ONT_ask_selected_nodes(&count, &objects);for (i…

Multimedia-播放器-架构2

目录 引言 问题1&#xff1a; 数据缓冲区 多线程模型 缓冲区的特点&#xff1a; 点播和直播场景中的缓冲区&#xff1a; 问题2&#xff1a; 同步方式 同步实现过程 引言 上一篇梳理了播放器的基本工作与处理流程&#xff0c;本片内容主要梳理一下其中会遇到的问题&am…

桂理理工大题

#include <stdio.h> #include <stdlib.h>int getMax(int n); int getMin(int n); int range(int n); static int count1; //作为全局变量控制每次的序列号int main(){int num;int i,j;do{printf("输入黑洞数&#xff1a;\n");scanf("%d",&…

Jdk8 动态编译 Java 源码为 Class 文件(三)

Jdk8 动态编译 Java 源码为 Class 文件 一.JDK版本二.工程介绍1.依赖2.启动类3.配置类&#xff08;用于测试依赖注入&#xff09;4.工具类1.Java 源码文件读取类2.SpringBoot 容器实例管理类 5.测试类1.抽象类2.接口类3.默认抽象实现4.默认接口实现 6.接口类1.测试接口2.类重载…

数学建模:模糊综合评价分析

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 数学建模&#xff1a;模糊综合评价分析 文章目录 数学建模&#xff1a;模糊综合评价分析综合评价分析常用评价方法一级模糊综合评价综合代码 多级模糊综合评价总结 综合评价分析 构成综合评价类问题的五个…

Emmet 使用笔记小结

Emmet 使用笔记小结 最近在跟视频走 CSS 的教程&#xff0c;然后要写很多的 HTML 结构&#xff0c;就想着总结一下 Emmet 的语法。 Emmet 是一个工具可以用来加速 HTML 和 CSS 的开发过程&#xff0c;不过 emmet 只支持 HTML & XML 文件结构&#xff0c;所以我个人觉得对…

【JavaSE】面试01

文章目录 1. JDK、JRE、JVM之间的关系2. 补充3. 面试题&#xff1a;重载和重写的区别&#xff1f;4. super和this5. &#xff08;重点&#xff01;&#xff01;&#xff09;若父类和子类均有静态代码块、实例代码块以及无参构造方法&#xff0c;则继承关系上的执行顺序&#xf…

如何解决分库分表主键问题?

分析&回答 从问题角度出发&#xff1a;我们需要一个全局唯一的 id 来支持&#xff0c;排序问题等。这都是你实际生产环境中必须考虑的问题。可以先看下我们之前的文章分布式系统唯一ID如何生成&#xff1f; 雪花算法和雪花算法的变种是大家常用的 喵呜面试助手&#xff1…

Python字节码文件

迷途小书童的 Note 读完需要 5分钟 速读仅需 2 分钟 大家好&#xff0c;我是迷途小书童&#xff01; 今天给大家介绍一个神奇的文件 -- pyc 文件&#xff0c;它能加速 Python 程序的执行速度&#xff0c;同时也能起到保护源码的作用。 1 什么是 pyc 文件? pyc 文件是经过编译的…