2024-2024阿里巴巴Python面试真题解析,Python-Matplotlib可视化(9)——精通更多实用图形的绘制,大厂面试笔试题

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

n = 512

max_iter = 64

xmin, xmax, ymin, ymax = -2.2, .8, -1.5, 1.5

x = np.linspace(xmin, xmax, n)

y = np.linspace(ymin, ymax, n)

z = np.empty((n, n))

for i, y_i in enumerate(y):

for j, x_j in enumerate(x):

z[i, j] = iter_count(complex(x_j, y_i), max_iter)

plt.imshow(z, cmap = cm.Spectral)

plt.show()

可视化二维数组的内容

Tips:imshow()接受一个2D数组作为参数置,用于渲染图片,其中每个像素代表一个从2D数组中提取的值。像素的颜色从colormap中选取。2D数组中的数据也可以是自文件或其他源,例如我们完全可以将读取的图片绘制在图形中。

import matplotlib.cm as cm

from matplotlib import pyplot as plt

读取图片

img = plt.imread(‘img.png’)

绘制图片

plt.imshow(img)

plt.show()

图片的读取与绘制我们也可以使用不同的颜色映射观察效果,只需要修改plt.imshow()可选参数cmap的值即可.

plt.imshow(z, cmap = cm.binary, extent=(xmin, xmax, ymin, ymax))

修改颜色映射Tips:plt.imshow()的可选参数extent指定存储在二维数组中的数据的坐标系——由四个值组成的元组,分别表示水平轴和垂直轴上的最小、最大范围。

接下来,将数组的尺寸由从512x512减少到32x32,看看效果如何:

n = 64

缩小尺寸Tips:使用32x32的数组表示Mandelbrot集时,得到的图片的尺寸并没有缩小,但和512x512数组产生的图片仍有明显差别。这是由于,生成一张给定大小的图片,如果输入的数据小于或大于该图片尺寸,plt.imshow()将执行插值操作。默认的插值是线性插值,可以看出效果并不总是理想的。可以通过imshow()函数的可选参数interpolation指定要使用的插值类型。

使用双三次插值算法(interpolation = ‘bicubic’)查看效果:

双三次插值算法

为图形添加色彩映射图例


使用色彩映射可以绘制可读性和视觉性都较好的图形,当使用色彩映射时,我们就可以大致知道相应颜色对应的值。

import numpy as np

import matplotlib.cm as cm

from matplotlib import pyplot as plt

def iter_count(c, max_iter):

x = c

for n in range(max_iter):

if abs(x) > 2.:

return n

x = x ** 2 + c

return max_iter

n = 512

max_iter = 64

xmin, xmax, ymin, ymax = -2.2, .8, -1.5, 1.5

x = np.linspace(xmin, xmax, n)

y = np.linspace(ymin, ymax, n)

z = np.empty((n, n))

for i, y_i in enumerate(y):

for j, x_j in enumerate(x):

z[i, j] = iter_count(complex(x_j, y_i), max_iter)

plt.imshow(z, cmap = cm.Spectral, interpolation=‘bicubic’)

cb = plt.colorbar(orientation=‘horizontal’, shrink=.75)

cb.set_label(‘colormaping’)

plt.show()

为图形添加色彩映射图例

Tips:plt.colorbar()函数向Matplotlib发出信号显示一个colorbar。其中:可选参数orientation用于选择颜色栏是垂直还是水平,默认情况下,它是垂直的;shrink参数用于缩放颜色栏。调用plt.colorbar()函数将生成一个Colorbar实例,调用该Colorbar实例的set_label()方法,可以为颜色栏设置标题。

二维标量场的可视化


可以使用numpy.meshgrid() 函数从2D函数中生成样本。然后,使用plt.pcolormesh()显示此函数图形:

import numpy as np

import matplotlib.cm as cm

from matplotlib import pyplot as plt

n = 256

x = np.linspace(-3., 3., n)

y = np.linspace(-3., 3., n)

x_list, y_list = np.meshgrid(x, y)

z_list = x_list * np.cos(x_list ** 2 + y_list ** 2)

plt.pcolormesh(x_list, y_list, z_list, cmap = cm.Spectral)

cb = plt.colorbar(orientation=‘horizontal’, shrink=.75)

plt.show()

二维标量场的可视化Tips:使用颜色映射可以帮助我们快速判断相应点的符号和大小。

np.meshgrid()函数的作用是:获取两个坐标列表,并构建坐标网格。因为两个坐标列表都是numpy数组,所以我们可以以处理单个变量的方式处理它们,这使得计算标量场的过程简洁易读。最后,调用函数plt.pcolormesh()呈现图片。

等高线的可视化


等高线将具有相同值的所有点连接起来,可以更容易看到数据的分布特征。

import numpy as np

from matplotlib import pyplot as plt

import matplotlib.cm as cm

def iter_count(c, max_iter):

x = c

for n in range(max_iter):

if abs(x) > 2.:

return n

x = x ** 2 + 0.98 * c

return max_iter

n = 512

max_iter = 80

xmin, xmax, ymin, ymax = -0.32, -0.22, 0.8, 0.9

x = np.linspace(xmin, xmax, n)

y = np.linspace(ymin, ymax, n)

z = np.empty((n, n))

for i, y_i in enumerate(y):

for j, x_j in enumerate(x):

z[j, i] = iter_count(complex(x_j, y_i), max_iter)

plt.imshow(z, cmap = cm.Spectral,

interpolation = ‘bicubic’,

origin = ‘lower’,

extent=(xmin, xmax, ymin, ymax))

levels = [8, 12, 16, 20]

ct = plt.contour(x, y, z, levels, cmap = cm.binary)

plt.clabel(ct, fmt=‘%d’)

plt.show()

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-tmTLLA2H-1713788896989)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值