画图案例分享

案例 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 warnings

plt.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.height

xmin, 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=0

x = 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.mfbz.cn/a/330915.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《Linux C编程实战》笔记:出错处理

这一节书上把它放到线程这一章,按理说应该在前面就讲了 头文件errno.h定义了变量errno,它存储了错误发生时的错误码,通过错误码可以得到错误的信息 程序开始执行时,变量errno被初始化为0。很多库函数在执行过程中遇到错误时就会…

排序算法9----计数排序(C)

计数排序是一种非比较排序,不比较大小 。 1、思想 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 2、步骤 1、统计数据:统计每个数据出现了多少次。(建立一个count数组,范围从[MIN,MAX],MAX代表arr中…

关于gltf模型格式文件的学习

目录 glTF模型 小黄鸭的gltf模型 字段分析 scene nodes meshes primitives attributes indices mode material accessors bufferView byteOffset count componentType type materials textures images samplers magFilter与minFilter wrapS与wrapT 进行…

10个用于Android开发的有用的Kotlin库及示例

10个用于Android开发的有用的Kotlin库及示例 在Android开发领域,Kotlin已成为一门领先的语言,带来了现代语法和功能的浪潮。随着Kotlin的崛起,涌现出了许多专为其定制的库,进一步增强了开发体验。本文将深入介绍其中的10个库&…

2024年美赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

C语言从入门到实战——动态内存管理

动态内存管理 前言一、 为什么要有动态内存分配二、 malloc和free2.1 malloc2.2 free 三、calloc和realloc3.1 calloc3.2 realloc 四、常见的动态内存的错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动态开…

赤藓糖醇行业研究:预计2029年将达到3.5亿美元

赤藓糖醇是一种四碳糖醇,存在于多种食物中,如葡萄、梨、西瓜等,可由微生物发酵法和化学合成法两种方法制备,目前商业化生产中均采用微生物发酵法。赤藓糖醇由葡萄糖发酵制作而成,上游原料主要包括葡萄糖、玉米淀粉糖和…

Android中的anr定位指导与建议

1.背景 8月份安卓出现了一次直播间卡死(ANR)问题,且由于排查难度较大,持续了较长时间。本文针对如何快速定位安卓端出现ANR问题进行总结和探讨. 这里大致补充一下当时的情况,当时看到情景的是从某一个特定的场景下进入直播间后整个直播间界面立刻就卡住…

23年11月移动广告行业大盘趋势,借鉴双 11 ,年货节该如何提高广告收益

前言 年货节开始啦,我们可以借鉴2023年双11期间的广告大盘趋势,洞悉如何在大型促销期间调整广告运营策略以提升效果。年货节是一个绝佳的时机,可以利用在双11期间积累的经验和策略,进行相应的调整和优化。通过精准定位广告投放高…

Elasticsearch:和 LIamaIndex 的集成

LlamaIndex 是一个数据框架,供 LLM 应用程序摄取、构建和访问私有或特定领域的数据。 LlamaIndex 是开源的,可用于构建各种应用程序。 在 GitHub 上查看该项目。 安装 在 Docker 上设置 Elasticsearch 使用以下 docker 命令启动单节点 Elasticsearch 实…

maven无法识别本地maven仓库包解决方案

前言:由于本地maven仓库已经有了相关依赖包,idea还是去远程仓库下载(不知何原因,生产上到远程仓库的网络突然不通了),故需要自己本地上传相关包到生产主机并修改setttings文件来强制读取本地仓库方案 settings文件修改如下方式即…

iPad如何连接到Wi-Fi,这里提供详细步骤

这篇文章解释了如何将iPad连接到Wi-Fi,无论是公共Wi-Fi网络还是需要密码的专用网络。 将iPad连接到Wi-Fi 当你想让iPad联机时,请按照以下步骤连接到Wi-Fi: 1、在iPad的主屏幕上,点击设置。 2、点击Wi-Fi。 3、要启动iPad搜索附…

数据库作业三

1.创建student和score表 2.为student表和score表增加记录 3.查询student表的所有记录 4.查询student表的第2条到4条记录 5.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息 6.从st…

Zabbix6.4 图形乱码怎么办

Zabbix6.4 图形乱码怎么办 Zabbix6.4 安装后,进入主机图形展示,你会发现文字部分乱成了乱码。 找一台Microsoft Windows 7/10/11的电脑,打开C:\Windows\Fonts 找到【楷体 常规】,将字体复制到桌面。 桌面上就会多出simkai.ttf字…

5.2 基于深度学习和先验状态的实时指纹室内定位

文献来源 Nabati M, Ghorashi S A. A real-time fingerprint-based indoor positioning using deep learning and preceding states[J]. Expert Systems with Applications, 2023, 213: 118889.(5.2_基于指纹的实时室内定位,使用深度学习和前一状态&…

抖音弹幕直播玩法汉字找不同文字找不同无人值执守自动玩游戏自带语音播报的开发日志

#找不同# 要解决如下几个问题: 1.声音sprite的录制和调用,解决方案以及解决库如下: howler.min.js://一款不错的音频播放js库。 2.鼠标自动飘浮,使用的库 anime.min.js 3.资源预加载 preload.min.js 4.其它使用到的库 jquery,vue

Docker安装开源Blog(Typecho)

前言 首先这个镜像是centos7.9进行安装PHP环境,然后挂载目录去运行的,镜像大概300MB左右,没学过PHP,没办法给Dockerfile文件 参考文章:Docker安装Typecho | D-y Blog感知不强,图一乐https://www.wlul.top…

开放式耳机哪个品牌好?2024最新开放式耳机选购指南!实测避雷!

如果你是一个对音质和舒适度有要求的人,那么你一定要看看开放式耳机了,开放式耳机不是像封闭式耳机那样堵着耳朵,它能够提供更宽广的音场和更自然声音,佩戴也更加舒适,那么哪个品牌的开放式耳机最好呢?接下…

新能源汽车智慧充电桩解决方案:智慧化综合管理与数字化高效运营

一、方案概述 TSINGSEE青犀&触角云新能源汽车智慧充电桩解决方案基于管理运营平台,覆盖业务与应用、数据传输与梳理、多端开发、搭建等模块,融合AI、5G、Wi-Fi 、移动支付等技术,实现充电基础设施由数字化向智能化演进,通过构…

使用Go语言处理Excel文件的完整指南

xcel文件是广泛用于存储和处理数据的常见文件格式。在Go语言中,有许多库和工具可用于处理Excel文件。本文将介绍如何使用Go语言处理Excel文件,包括读取、写入和修改Excel文件,以及处理单元格、行和列等操作。无论是从头开始创建Excel文件&…
最新文章