画图案例分享

案例 1

from scipy.misc import derivative
from scipy.integrate import quad
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy.stats import norm
import warningsplt.style.use('ggplot')
np.random.seed(37)
warnings.filterwarnings('ignore')
import matplotlib
plt.rcParams['font.sans-serif']=['Songti SC'] #用来正常显示中文标签
# 或者是下面这个,宋体和仿宋字体,都可以用。
#plt.rcParams['font.sans-serif']=['STFangsong'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号x = np.arange(-2.5, 2.5, 0.1)
y_pdf = norm.pdf(x)
y_cdf = norm.cdf(x)y_cdf = np.array([tup[0] for tup in [quad(norm.pdf, a, b) for a, b in [(a, b) for a, b in zip(x, x[1:len(x)])]]] + [0]).cumsum()
y_pdf = derivative(norm.cdf, x, dx=1e-6)fig, ax = plt.subplots(1, 2, figsize=(20, 6),facecolor="white")_ = ax[0].plot(x, y_pdf, color='black',linewidth=3.0)
#_ = ax[1].plot(x, y_cdf, color='b')
ax[0].set_facecolor('white') # 设置背景颜色
ax[0].axvline(x=0.0, color="black", linestyle="-", linewidth=3,ymin=0., ymax=0.66)
#ax[0].arrow(-4,0,8,0,color="black",linewidth=3)
ax[0].set_ylim(0,0.6)################################################
for side in ['bottom','right','top','left']:ax[0].spines[side].set_visible(False)
for side in ['bottom','right','top','left']:ax[1].spines[side].set_visible(False)
################################################xmin, xmax = ax[0].get_xlim() 
ymin, ymax = ax[0].get_ylim()dps = fig.dpi_scale_trans.inverted()
bbox = ax[0].get_window_extent().transformed(dps)
width, height = bbox.width, bbox.height
# manual arrowhead width and length
hw = 1./20.*(ymax-ymin) 
hl = 1./20.*(xmax-xmin)
lw = 2.0 # axis line width
ohg = 0.3 # arrow overhang# compute matching arrowhead length and width
yhw = hw/(ymax-ymin)*(xmax-xmin)* height/width 
yhl = hl/(xmax-xmin)*(ymax-ymin)* width/height# draw x and y axis
ax[0].arrow(xmin, 0, xmax-xmin+0.2, 0., fc='k', ec='k', lw = lw, head_width=hw, head_length=hl, color="black",length_includes_head= False, clip_on = False) ax[0].text(0,-0.05,"$\mu$",size=18)
ax[0].text(-2.8,0.5,"$p(x)$",size=18)
ax[0].text(3,-0.05,"$x$",size=18)
ax[0].set_xticks([])
ax[0].set_yticks([])
_ = ax[0].set_title('($a$)'+' 正态密度函数',y=-0.2,fontsize=18) # 标题放下面_ = ax[1].plot(x, y_cdf, color='black',linewidth=3.0)
ax[1].set_facecolor('white') # 设置背景颜色
ax[1].axvline(x=0.0, color="black", linestyle="-", linewidth=3,ymin=0., ymax=0.66)
ax[1].axhline(y=1.0, color="black", linestyle="-", linewidth=3,xmin=0.05,xmax=0.9,ls="--")
#ax[1].arrow(-4,0,8,0,color="black",linewidth=3)
ax[1].set_ylim(0,1.5)# get width and height of axes object to compute 
# matching arrowhead length and width
dps = fig.dpi_scale_trans.inverted()
bbox = ax[1].get_window_extent().transformed(dps)
width, height = bbox.width, bbox.heightxmin, xmax = ax[1].get_xlim() 
ymin, ymax = ax[1].get_ylim()
# manual arrowhead width and length
hw = 1./20.*(ymax-ymin) 
hl = 1./20.*(xmax-xmin)
lw = 2.0 # axis line width
ohg = 0.3 # arrow overhang# compute matching arrowhead length and width
yhw = hw/(ymax-ymin)*(xmax-xmin)* height/width 
yhl = hl/(xmax-xmin)*(ymax-ymin)* width/height# draw x and y axis
ax[1].arrow(xmin, 0, xmax-xmin, 0., fc='k', ec='k', lw = lw, head_width=hw, head_length=hl, length_includes_head= False, clip_on = False) ax[1].text(0,-0.1,"$\mu$",size=18)
ax[1].text(-2.8,1.28,"$F(x)$",size=18)
ax[1].text(3,-0.1,"$x$",size=18)
ax[1].text(-0.2,0.9,"$1$",size=18)
ax[1].set_xticks([])
ax[1].set_yticks([])
_ = ax[1].set_title('($b$)'+' 正态分布函数',y=-0.2,fontsize=18) # 标题放下面plt.savefig("./重绘/13.png",dpi=500,bbox_inches='tight')

结果如下
在这里插入图片描述

注意点1

其中有一个易错的点需要注意
在这里插入图片描述

################################################
for side in ['bottom','right','top','left']:ax[0].spines[side].set_visible(False)
for side in ['bottom','right','top','left']:ax[1].spines[side].set_visible(False)
################################################

这部分代码是一定要加上的,否则这个图像就变成了下面的这个结果
在这里插入图片描述这个x轴就像长了一个奇怪的东西一样,需要注意

注意点2

保存图片时,一定要记得用bbox_inches的参数

plt.savefig("./重绘/13.png",dpi=500,bbox_inches='tight')

如果不用这个参数,图片下面的标题就没有了,意外的被丢掉了,需要注意

案例2

%matplotlib inline
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import warnings
plt.style.use('ggplot')
np.random.seed(37)
warnings.filterwarnings('ignore')plt.rcParams['font.sans-serif']=['Songti SC'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号fig, ax = plt.subplots(1, 2, figsize=(20, 6),facecolor="white")
ax[0].set_facecolor('white') # 设置背景颜色################################################
for side in ['bottom','right','top','left']:ax[0].spines[side].set_visible(False)
for side in ['bottom','right','top','left']:ax[1].spines[side].set_visible(False)
################################################# draw x and y axis
ax[0].arrow(-4, 0, 12, 0., fc='k', ec='k', lw = 2.0, head_width=0.021931753100282243, head_length=0.66, color="black",length_includes_head= False, clip_on = False)
# draw x and y axis
# draw x and y axis
ax[0].arrow(0, 0, 0, 0.5, fc='k', ec='k', lw = 2.0,head_width=0.3,head_length=0.05,color="black",length_includes_head= False, clip_on = False)means = [0.0, 3.0, 2.0]
cnt=0
for mean in means:if(cnt ==0):x = np.linspace(-3.3,3.3,100)ax[0].plot(x, norm.pdf(x,loc=mean),c="b",linewidth=3.0)if(cnt ==1):x = np.linspace(-1.5,7.5,100)ax[0].plot(x, norm.pdf(x,loc=mean),c="g",linewidth=3.0)ax[0].axvline(x=3.0, color="black", linestyle="-", linewidth=2,ymin=0.07, ymax=0.71)if(cnt ==2):x = np.linspace(-1.5,5.5,100)ax[0].plot(x, norm.pdf(x,loc=mean),c="r",linewidth=3.0)ax[0].axvline(x=2.0, color="black", linestyle="-", linewidth=2,ymin=0.07, ymax=0.71)cnt+=1
# ax[0].set_yticks([])
# ax[0].set_xticks([])
ax[0].text(0,-0.05,"$\mu_{2}$",size=18)
ax[0].text(2.0,-0.05,"$\mu_{1}$",size=18)
ax[0].text(3.0,-0.05,"$\mu_{3}$",size=18)
ax[0].text(0.35,0.5,"$\mathrm{p(x)}$",size=18)
ax[0].text(8.5,-0.05,"$x$",size=18)
ax[0].set_xticks([])
ax[0].set_yticks([])ax[1].set_facecolor('white') # 设置背景颜色# draw x and y axis
ax[1].arrow(-4, 0, 12, 0., fc='k', ec='k', lw = 2.0, head_width=0.021931753100282243, head_length=0.66, color="black",length_includes_head= False, clip_on = False)
# draw x and y axis
# draw x and y axis
ax[1].arrow(0, 0, 0, 0.55, fc='k', ec='k', lw = 2.0,head_width=0.3,head_length=0.05,color="black",length_includes_head= False, clip_on = False)cnt=0x = np.linspace(-3.3,7.3,100)
ax[1].plot(x, norm.pdf(x,loc=2,scale=1.0),c="r",linewidth=3.0)x = np.linspace(-3.3,7.3,100)
ax[1].plot(x, norm.pdf(x,loc=2,scale=2.0),c="b",linewidth=3.0)x = np.linspace(-3.3,8.0,100)
ax[1].plot(x, norm.pdf(x,loc=2,scale=0.7),c="g",linewidth=3.0)ax[1].axvline(x=2.0, color="black", linestyle="-", linewidth=1,ymin=0.07, ymax=1.0)ax[1].text(0,-0.05,"0",size=18)
ax[1].text(8.5,-0.05,"$x$",size=18)
ax[1].text(0,0.62,"$\mathrm{p(x)}$",size=18)
ax[1].text(2.1,0.63,"$x=\mu$",size=18)
ax[1].text(2.4,0.53,"$\sigma=0.7$",size=18,color="g")
ax[1].text(3.0,0.25,"$\sigma=1$",size=18,color="r")
ax[1].text(5.0,0.1,"$\sigma=2$",size=18,color="b")
ax[1].set_xticks([])
ax[1].set_yticks([])plt.savefig("./重绘/14.png",dpi=500,bbox_inches='tight')

结果如下
在这里插入图片描述
除了这个坐标轴有点丑,其余的都还行的

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

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

相关文章

重要的话说三遍 PTA

题目: 这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “Im gonna WIN!”——连续输出三遍就可以了。 注意每遍占一行,除了每行的回车不能有任何多余字符。 输入样例: 无输出样例: Im gonna WIN! Im gon…

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络 SUSE Linux Enterprise Server是企业级Linux系统,适合企业应用。该文档适用于在VMware workstation平台安装SUSE Linux Enterprise Server虚拟机。 1.安装准备 1.1安装平台 Windows…

如何用GPT进行论文润色与改写?

详情点击链接:如何用GPT/GPT4进行论文润色与改写?一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二…

前端(html+css+javascript)作业--展现家乡的网页

期末期间,老师布置了前端作业,现在放到这里,给各位同志参考。 桂平市是广西壮族自治区的一个美丽的城市,拥有丰富的历史文化和自然景观,属于贵港市管辖,那为什么是看起来是市级而不是县级,其实他…

史上最全在IDEA中部署并使用Tomcat,图文并茂一看包会!

前言 之前自己迷茫过怎样在idea中使用Tomcat,因此查了很多资料,在这做个总结。 一、建立过程 1.新建一个JAVA文件 2.添加框架 在项目的创建区内,右击项目名,在弹窗中选择“添加框架支持”;选择“Web应用程序4.0”&…

Eclipse闪退 打开eclipse闪退 打开eclipse图标一闪而过 eclipse闪退 eclipse打不开

Eclipse闪退 打开eclipse闪退 打开eclipse图标一闪而过 eclipse闪退 eclipse打不开 问题描述切换为命令行启动 查看异常日志 问题描述 双击图标,窗口一闪而过,马上关闭了 切换为命令行启动 查看异常日志 进入Eclipse安装目录,运行终端启动…

Stable Diffusion中不同的采样方法

在 Stable Diffusion 模型中,采样方法是从学习到的概率分布中生成图像的算法。采样方法影响生成图像的质量、样式、速度以及过程的控制程度。以下是一些采样方法的概述和它们对图像生成可能产生的影响: DPM系列 DPM 2M / 3M: 这些是扩展的扩散概率模型&…

【0244】pg_ctl停止PG服务的底层实现机制

1. 概述 本文将详细讲解pg_ctl命令停止一个运行中的PG服务的底层实现原理。正文内容将详细分为以下几个点: pg_ctl命令停止PG服务的几种方式postmaster守护进程是如何知晓pg_ctl命令发出的停止服务请求postmaster守护进程如何响应pg_ctl命令的不同停止命令postmaster停止服务…

指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针 概述基本概念理解量子纠缠PythonJavaC 理解波粒二象性PythonJavaC 理解量子隧穿理解宇宙常量PythonJavaC 概述 量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也…

1. SpringBoot3 基础

文章目录 1. SpringBoot 概述2. SpringBoot 入门3. SpringBoot 配置文件3.1 SpringBoot 配置文件基本使用3.2 yml 配置文件 4. SpringBoot 整合 Mybatis5. Bean 管理5.1 Bean 扫描5.2 Bean 注册5.3 注册条件 6. 组合注解7. 自动配置原理8. 自定义 Starter 1. SpringBoot 概述 …

力扣hot100 完全平方数 完全背包 滚动数组 四平方和定理

Problem: 279. 完全平方数 文章目录 思路💖 完全背包💖 滚动数组优化💖 四平方和定理 思路 👨‍🏫 三叶神解 👨‍🏫 数学解法 💖 完全背包 ⏰ 时间复杂度: O ( n 2 n ) O(n^2 …

Vue项目中axios的二次封装

Vue 项目中 axios 的二次封装 Vue 项目使用过程中一般会对 axios 进行二次封装, 以期在合适的时机处理一些全局的需求, 比如常见的 请求拦截器 和 响应拦截器. 接下来简单聊聊具体的操作步骤. 1, 下载 axios 模块 执行以下指令: import axios from axios;2, 封装 在 src 文…

072:vue+mapbox 点击某图层feature,高亮这部分

第072个 点击查看专栏目录 本示例是介绍如何在vue+mapbox中点击某图层feature,高亮这部分。思路是通过点击,获取点击部分的feature信息,生成一个新的source和layer,如果这个图层不为空,则清除之,相当于点击了别的地方,原有的高亮会删除掉,在别的地方高亮。 直接复制下…

探寻编码时代的潮流旋律

🚩本文介绍 随着技术的不断演进,编程语言作为软件开发的基石也在不断发展。作为一名扎根运维领域的工程师,我深感了解和把握编程语言的新趋势对于个人职业发展至关重要。在这篇博客中,我们将深入探讨当前编程语言领域的最新动态&…

VMware虚拟机自定义网段及物理机ping不通虚拟机问题解决

Vmware网络介绍🛜 VMware虚拟机提供了几种网络模式,其中包括桥接模式(Bridged Mode)、NAT模式(Network Address Translation Mode)和仅主机模式(Host-Only Mode)。这些模式允许虚拟…

Android应用开发:基础小游戏开发

手机游戏成为人们日常娱乐的重要组成部分。如果您想踏入这个充满创意和技术挑战的领域,制作一个Android基础小游戏是个不错的开始。以下是从零开始制作Android小游戏的基础指南。 1选择开发环境和工具 Android Studio 是官方推荐的开发环境,它提供了强大…

页面嵌入iframe Cookie丢失问题解决

页面嵌入iframe Cookie丢失问题解决 遇到的问题 自身页面以iframe的形式嵌入三方页面中,双方域名不一致导致自身页面的cookie被某些浏览器拦截无法正常被保存到客户端 解决方案 后端将cookie以链接参数的形式带给前端前端在请求接口的时候将cookie放在请求头&…

Matlab中常见的数据平滑方式

文章目录 1. 移动平均:2. Loess平滑: 在 MATLAB 中,您可以使用不同的平滑技术对向量数据进行平滑处理。以下是其中两种常用的平滑方法:移动平均和Loess平滑。 1. 移动平均: % 示例数据 x 1:100; y randn(1, 100); …

《2023大数据产业年度创新技术突破》榜重磅发布丨第六届金猿奖

‍ 第六届年度金猿榜单/奖项 “第六届年度金猿季策划活动——2023大数据产业创新技术突破榜单/奖项”由金猿X数据猿X上海大数据联盟共同推出。 大数据产业创新服务媒体 ——聚焦数据 改变商业 第六届 “年度金猿季大型主题策划活动”由金猿、数据猿、上海大数据联盟共同组成的…

【playwright】新一代自动化测试神器playwright+python系列课程18_playwritht元素相关操作_等待元素到某种状态

元素相关操作_等待元素到某种状态 对于自动化测试来说,本质上就是定位元素、操作元素。网页上的元素有不同状态,有些元素本来不在网页的DOM中,经过某一步操作后才出现。有些元素是本来就已经在DOM中但是是隐藏的状态,经过某一步操…