在本教程中,我将告诉你如何使用Plotly的imshow函数在Python中显示图像。
因此,我将解释px.imshow
的语法。我还将向你展示一个清晰的、逐步的例子,说明如何用Plotly显示图像。
目录
好的让我们开始吧
对Plotly imshow函数的快速介绍
Plotly的imshow函数有多种用途。
例如,你可以用这个函数来绘制热图,并将数字直观地绘制成颜色。
但使用该函数的最佳方式之一是显示图像。 (顾名思义,它的根本目的是用于 "图像显示")。
因此,你可以使用Plotly imshow将图像可视化,作为图像处理工作流程的一部分。
在本教程中,我们将严格坚持绘制图像,如.jpg和.png文件,我们将在另一篇教程中介绍热图和其他技术。
px.imshow的语法
现在我已经让你快速了解了Plotly imshow函数的作用,让我们来看看其语法。
px.imshow的语法非常简单。
通常情况下,我们调用该函数为px.imshow()
。
记住:这个语法假设你已经导入了Plotly express,昵称为px
。你可以通过代码import plotly.express as px
。
px.imshow的输入
让我们快速讨论一下函数的输入。
在上面的语法解释中,你会注意到我称之为your_image
的输入。 这通常是一个.jpg或.png文件。
然而,通常情况下,在你用px.imshow绘制图片之前,你需要用一个单独的函数将其读入。 具体来说,你需要用一个类似scikit-image的imread()
的函数来读入图像。 我将在例子部分向你展示如何做到这一点。
例子:如何用Plotly Express将图像可视化
现在我们已经看过了语法,让我们来看看如何用Plotly Express绘制图像和图片的一些例子。
例子
先运行这段代码
在你运行这些例子之前,你需要导入一些包并运行一些初步的代码。
导入软件包
首先,我们需要导入几个Python包。
import plotly.express as px
import skimage.io as skio
我们显然需要plotly.express
来运行px.imshow
函数。
我们还需要skimage
来导入我们的图像并将其读入我们的 Python 环境。
如果你没有这些包,那么你就需要先安装它们。 通常,这些天,我通过Anaconda安装我所有的Python包。 你可以在这里得到更多关于通过Anaconda安装skimage的信息。 你可以在这里获得更多关于安装Plotly的信息。
设置图像渲染
默认情况下,Plotly被设置为在浏览器窗口渲染图像。
所以,如果你使用像Spyder这样的集成开发环境来做你的数据科学工作,你需要设置它来渲染Plotly的绘图。 我使用Spyder,所以我需要自己做这个步骤。
注意:如果你使用的是Jupyter,你可以跳过这段代码。
要设置Plotly在你的IDE中把你的绘图渲染成svg图片,你可以运行以下代码。
import plotly.io as pio
pio.renderers.default = 'svg'
获取图片(即用scikit-image读入图片)
接下来,让我们得到一个可以绘图的图像。
imread()
该图像在sharpsightlabs.com的一个在线文件夹中,我们将使用skimage
的函数来读入它。
ron = skio.imread('https://www.sharpsightlabs.com/datasets/images/ron-smirk.png')
一旦你运行这段代码,你就可以开始了。
例子1:用px.imshow绘制一张图片
在这里,我们要用Plotly的imshow函数来 "绘制 "图片。
这是很简单的。
下面是代码。
px.imshow(ron)
这里是输出结果。
"这是科学。"
解释
好的这是很简单的。
我们调用了Plotly的imshow函数,语法是px.imshow()
。
在括号里,我们传入了一张图片。 该图片是 "ron-smirk.png "文件。 该文件被存储在变量名ron
。
从文件结尾可以看出,这是一个.png
文件。 但你也可以使用.jpg
文件,其他几种图像类型也应该可以。
实例2:删除X和Y轴上的刻度线标签
现在,我们将删除X轴和Y轴上的刻度线标签。
在例子1中,你可能注意到沿x轴和y轴的数字。 这些是轴的 "刻度 "标签。
对于某些应用来说,包括它们可能是好的,但在某些情况下,你可能想删除它们。
要删除它们,你需要使用update_xaxes()
方法和update_yaxes()
方法。 重要的是,在括号内,我们需要将showticklabels
参数设置为showticklabels = False
。
让我们来看看
(px.imshow(ron)
.update_xaxes(showticklabels = False)
.update_yaxes(showticklabels = False)
)
输出
解释
很明显,这里的输出与例1的输出几乎完全一样。
这里唯一的区别是,我们通过使用update_xaxes
和update_yaxes
删除了轴的刻度(即沿轴的数字)。
还请注意,我使用了一种特殊的技术来调用这些方法。 我把这些方法 "串联 "在一起,一个接一个,但它们是在多行上。
为了做到这一点,整个表达式被包围在括号内。
这与"秘密 "的pandas链式语法非常相似,它允许你将多个pandas方法链在一起,在单一的代码块中进行高级数据操作。
我强烈建议你学习这种将Python方法连锁起来的技术。 一旦你学会了如何正确使用它,它就会非常强大。
在这篇文章中,我向你展示了如何在Python中使用Plotly imshow函数(AKApx.imshow
)绘制图像。但要真正掌握使用Plotly的Python数据可视化,还有很多东西需要学习。