最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库

简介: 最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
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所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

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

三、入门学习视频

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


相关文章
|
3月前
|
缓存 监控 算法
小米面试题:多级缓存一致性问题怎么解决
【10月更文挑战第23天】在现代分布式系统中,多级缓存架构因其能够显著提高系统性能和响应速度而被广泛应用。
93 3
|
3月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
3月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
3月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
4月前
|
数据可视化 Python
可视化 图形 matplotlib
可视化 图形 matplotlib
|
5月前
|
JavaScript 前端开发 小程序
CoderGuide 程序员前后端面试题库,打造全网最高质量题库
CoderGuide涵盖范围包括且不限于:前端面试题(Vue,React,JS,HTTP,HTML,CSS面试题等),后端面试题(Java,Python,Golang,PHP,Linux,Mysql面试题等),以及算法面试题,大厂面试题,高频面试题,校招面试题等,你想要的,这里都有!
78 2
|
5月前
|
数据可视化 Python
matplotlib可视化必知必会富文本绘制方法
matplotlib可视化必知必会富文本绘制方法
27 0
|
6月前
|
数据可视化 数据挖掘 Python
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
29天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。