当前位置: 首页 > news >正文

导航条 Wordpress山东seo推广公司

导航条 Wordpress,山东seo推广公司,学做网站论坛vip,用asp做网站出现空白在较多的画图场景中,需要对图像进行局部放大,掌握相关方法非常有用,因此我们很有必要一起学习 【1】官网教程 首先是进入官网教程,找到学习资料: https://matplotlib.org/stable/gallery/subplots_axes_and_figures…

在较多的画图场景中,需要对图像进行局部放大,掌握相关方法非常有用,因此我们很有必要一起学习

【1】官网教程

首先是进入官网教程,找到学习资料:

https://matplotlib.org/stable/gallery/subplots_axes_and_figures/axes_margins.html#sphx-glr-gallery-subplots-axes-and-figures-axes-margins-py

在这里可以看到好看的放大和缩小视图。

【2】代码解读

引入计算模块numpy和画图模块matplotlib:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算from matplotlib.patches import Polygon

然后自定义函数:

def f(t):return np.exp(-t) * np.cos(2*np.pi*t)  #定义子函数

之后定义自变量:

t1 = np.arange(0.0, 3.0, 0.01) #定义变量

再之后定义画图:

ax1 = plt.subplot(212) #定义2行1列第2个图形
ax1.margins(0.05)           # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1)) #输出图形ax2 = plt.subplot(221) #定义2行2列第1个图形
ax2.margins(2, 2)           # Values >0.0 zoom out
ax2.plot(t1, f(t1))
ax2.set_title('Zoomed out')ax3 = plt.subplot(222) #定义2行2列第2个图形
ax3.margins(x=0, y=-0.25)   # Values in (-0.5, 0.0) zooms in to center
ax3.plot(t1, f(t1))
ax3.set_title('Zoomed in')

最后输出图形:

plt.show()

输出图形为:

3b1afe4b40a9414fa3695ad22339a2e3.png

图1

由图1可见,通过调节margins()函数中的值,调节函数曲线和X轴Y轴的距离,进而实现图像的放大和缩小。

【3】margins()和xlim()函数/ylim()函数效果对比

前在述学习过程中,已经多次使用xlim()函数和ylim()函数来设置作标轴范围,进而实现对图像的大小进行缩放,未进行对比,将margins()和xlim()函数/ylim()函数效果进行同时输出,设置画图程序如下:

ax1 = plt.subplot(311) #定义3行1列第1个图形
ax1.margins(0.05)           # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed',y=0.68)ax2 = plt.subplot(312) #定义3行1列第2个图形
ax2.set_ylim(-0.65, 1.1) # Values >0.0 zoom out
ax2.plot(t1, f(t1),color='blue')
ax2.set_title('Set_ylim',y=0.68)
ax2.set_facecolor((0.66,0.36,0.86))ax3 = plt.subplot(313) #定义3行1列第3个图形
#ax3.margins(x=0, y=-0.25)   # Values in (-0.5, 0.0) zooms in to center
ax3.plot(t1, f(t1),color='green')
ax3.set_title('Origin',y=0.68)
ax3.set_facecolor('#eafff5')

由代码可见,ax1使用了margins()函数,ax2使用了set_ylim()函数,ax3未做限制是默认输出。

运行代码后的结果为:

5191e6542bd84b17ab8cf59e831e341a.png

图2

由图2可见,margins()和xlim()函数/ylim()函数效果都可以实现良好的输出效果。

如果不想进行限制,默认输出效果同样不错。

实际画图过程中,可根据需要灵活使用函数或者不使用函数以实现画图目的。

至此的完整代码为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算from matplotlib.patches import Polygondef f(t):return np.exp(-t) * np.cos(2*np.pi*t)  #定义子函数t1 = np.arange(0.0, 3.0, 0.01) #定义变量ax1 = plt.subplot(311) #定义3行1列第1个图形
ax1.margins(0.95)           # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed',y=0.68)ax2 = plt.subplot(312) #定义3行1列第2个图形
ax2.set_ylim(-0.65, 1.1) # Values >0.0 zoom out
ax2.plot(t1, f(t1),color='blue')
ax2.set_title('Set_ylim',y=0.68)
ax2.set_facecolor((0.66,0.36,0.86))ax3 = plt.subplot(313) #定义3行1列第3个图形
#ax3.margins(x=0, y=-0.25)   # Values in (-0.5, 0.0) zooms in to center
ax3.plot(t1, f(t1),color='green')
ax3.set_title('Origin',y=0.68)
ax3.set_facecolor('#eafff5')plt.show()

【4】尝试在图形中增开缩小试图

前面已经掌握了对图形进行缩小和方法的方法,有时候需要在一个稍大的图形中,再增加一个缩略图形,为此有必要继续探索。

下述链接给出了简单的教程,点击可一步直达:

https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.inset_axes.html#matplotlib.axes.Axes.inset_axes

基于此我们尝试给margins()函数输出图形增加一个缩略图,增加下述代码:

axins=ax1.inset_axes((0.85,0.5,0.15,0.5))
axins.plot(t1,f(t1))

输出图形为:

9aa36a331f24435fa71f6210af20fd3b.png

图3

图3即为增加缩略图后的图形。

此时的完整代码为:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算from matplotlib.patches import Polygondef f(t):return np.exp(-t) * np.cos(2*np.pi*t)  #定义子函数t1 = np.arange(0.0, 3.0, 0.01) #定义变量ax1 = plt.subplot(311) #定义3行1列第1个图形
ax1.margins(0.95)           # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed',y=0.68)
axins=ax1.inset_axes((0.85,0.5,0.15,0.5))
axins.plot(t1,f(t1))ax2 = plt.subplot(312) #定义3行1列第2个图形
ax2.set_ylim(-0.65, 1.1) # Values >0.0 zoom out
ax2.plot(t1, f(t1),color='blue')
ax2.set_title('Set_ylim',y=0.68)
ax2.set_facecolor((0.66,0.36,0.86))ax3 = plt.subplot(313) #定义3行1列第3个图形
#ax3.margins(x=0, y=-0.25)   # Values in (-0.5, 0.0) zooms in to center
ax3.plot(t1, f(t1),color='green')
ax3.set_title('Origin',y=0.68)
ax3.set_facecolor('#eafff5')plt.show()

【5】局部放大和整体缩小

如果主要想展示局部放大图,同时展示整体缩略图,可以如下设置:

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算from matplotlib.patches import Polygondef f(t):return np.exp(-t) * np.cos(2*np.pi*t)  #定义子函数t1 = np.arange(0.0, 3.0, 0.01) #定义变量fig , ax1 = plt.subplots( ) #定义3行1列第1个图形
ax1.margins(0.05)           # Default margin is 0.05, value 0 means fit
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed',y=0.68)
axins=ax1.inset_axes((0.85,0.5,0.15,0.5))
axins.plot(t1,f(t1))plt.show()

输出图像为:

f0f8e959c1ca4b4e81afef66a5cd9dbc.png

图4

图4为常规的图像,大图和小图都是整体图。

继续调节,将margins()进行修改:

ax1.margins(x=-0.25,y=-0.25)           # Default margin is 0.05, value 0 means fit
ax1.set_ylim(-0.25,0.5)

在修改margins()时,负数可以实现图像放大,设置set_ylim()可以更好地表达图像。

输出图像为:

24f16d33f418432597d353d346725353.png

图5

import matplotlib.pyplot as plt #引入matplotlib模块画图
import numpy as np #引入numpy模块做数学计算from matplotlib.patches import Polygondef f(t):return np.exp(-t) * np.cos(2*np.pi*t)  #定义子函数t1 = np.arange(0.0, 3.0, 0.01) #定义变量fig , ax1 = plt.subplots( ) #定义3行1列第1个图形
ax1.margins(x=-0.25,y=-0.25)           # Default margin is 0.05, value 0 means fit
ax1.set_ylim(-0.25,0.5)
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed',y=0.68)
axins=ax1.inset_axes((0.85,0.5,0.15,0.5))
axins.plot(t1,f(t1))plt.show()

继续对代码稍作修改:

fig , ax1 = plt.subplots( ) #定义3行1列第1个图形
ax1.margins(x=-0.25,y=-0.25)           # Default margin is 0.05, value 0 means fit
ax1.set_ylim(-0.25,0.5)
ax1.plot(t1, f(t1)) #输出图形
ax1.set_title('Zoomed')
axins=ax1.inset_axes((0.8,0.7,0.2,0.3))
axins.plot(t1,f(t1))

输出图像优化为:

ade0ad8a493d47f8a2ab2ad31262f91b.png

图6

可见图6更好地进行了表达。

【6】总结

学习了图像大放大和缩小技巧,探索了将放大和缩小图放在同一个坐标轴内的技巧。

 

 

http://www.hrbkazy.com/news/22524.html

相关文章:

  • 做网站维护累吗2024年2月新冠疫情又开始了吗
  • 做 专而精 的网站安卓优化大师旧版本
  • 凡科建站和wordpressseo推广编辑
  • 三门峡建设环境局网站浙江关键词优化
  • 网站如何开发触屏版网页代码
  • 旅游网站在提高用户体验方面应做哪些工作网络外贸推广
  • 江苏加强政府网站内容建设管理办法搜索关键词排名查询
  • 营销型网站建设公司哪家好360搜索引擎优化
  • 临沂做网站多少钱百度云盘登录电脑版
  • 东莞整站优化中国网站排名100
  • 有人做网站吗营销托管全网营销推广
  • wordpress恢复主题初始值wp博客seo插件
  • 做政府网站电脑培训学校
  • 知名的咨询行业网站制作百度竞价排名收费
  • 建设银行在上海的招聘网站如何优化搜索引擎的准确性
  • 沧州做企业网站持续优化完善防控措施
  • 广州网站公司推荐百度管理员联系方式
  • web网站开发全过程常见的网络营销平台有哪些
  • 一套完整的app开发流程优化怎么做
  • 合肥网站建设的价格北京网络营销推广
  • 网站百度权重没有数据如何进行搜索引擎优化 简答案
  • 做网站容易吧搜索引擎优化的技巧有哪些
  • 快站官方客户端下载北京网站托管
  • 网站被墙怎么做跳转怎么样推广自己的公司
  • 深圳网站制作公司建设seo研究中心论坛
  • 网站域名怎么缴费凡科建站官网入口
  • 自己切片做网站网站seo的优化怎么做
  • 京东pc网站用什么做的盛大游戏优化大师
  • 怎样做淘宝联盟的网站深圳优化公司样高粱seo
  • 优酷wordpress建站教程广州企业网站建设