Python 无法在Jupyter QtConsole中打印颜色栏:未找到可映射项。。。错误
我看到下面的示例来绘制图像和颜色贴图: 代码: 从这里开始: 但当我从控制台执行此操作时,我得到: i、 e.立即显示图像,不等待第二个命令,第二个命令后出现以下错误: 运行时错误:找不到可用于创建颜色栏的映射。首先定义一个可映射的对象,例如使用imshow的图像或使用contourf的轮廓集Python 无法在Jupyter QtConsole中打印颜色栏:未找到可映射项。。。错误,python,matplotlib,plot,jupyter,qtconsole,Python,Matplotlib,Plot,Jupyter,Qtconsole,我看到下面的示例来绘制图像和颜色贴图: 代码: 从这里开始: 但当我从控制台执行此操作时,我得到: i、 e.立即显示图像,不等待第二个命令,第二个命令后出现以下错误: 运行时错误:找不到可用于创建颜色栏的映射。首先定义一个可映射的对象,例如使用imshow的图像或使用contourf的轮廓集 这是因为您分别运行这两个命令 在第一个命令中,创建图像并以内联方式显示。然后,地物对象被丢弃,无法再更改 第二个命令现在应用于不包含图像的新地物 有几种可能的解决方案: 示例1:正常模式 这将在单独的窗口
这是因为您分别运行这两个命令 在第一个命令中,创建图像并以内联方式显示。然后,地物对象被丢弃,无法再更改 第二个命令现在应用于不包含图像的新地物 有几种可能的解决方案: 示例1:正常模式 这将在单独的窗口中显示该图。所有操作均适用于同一图形,该图形在使用plt.show显示之前不可见。然后,此函数将阻止脚本,直到图形关闭
In [1]: import matplotlib.pyplot as plt
In [2]: import matplotlib.image as mpimg
In [3]: img = mpimg.imread('/tmp/stinkbug.png')
In [4]: lum_img = img[:, :, 0]
In [5]: plt.imshow(lum_img)
Out[5]: <matplotlib.image.AxesImage at 0x7f1a24057748>
In [6]: plt.colorbar()
Out[6]: <matplotlib.colorbar.Colorbar at 0x7f1a24030a58>
In [7]: plt.show()
示例2:交互模式
这与示例1相同,但figure窗口会立即显示,并通过连续的绘图调用进行更新。对我来说,这在IPython中有效,但我在Jupyter控制台中只有一个黑色窗口
In [1]: import matplotlib.pyplot as plt
In [2]: import matplotlib.image as mpimg
In [3]: plt.ion()
In [4]: img = mpimg.imread('/tmp/stinkbug.png')
In [5]: lum_img = img[:, :, 0]
In [6]: plt.imshow(lum_img)
Out[6]: <matplotlib.image.AxesImage at 0x7f7f2061e9b0>
In [7]: plt.colorbar()
Out[7]: <matplotlib.colorbar.Colorbar at 0x7f7f20605128>
示例3:内联打印
如果需要内联模式,只需在一个输入行中执行多个命令,如下所示
示例4:高级内联打印
手动创建地物对象。在该对象上执行操作创建子图、绘制图像、添加颜色栏并随时显示内联图形,只需在命令行中键入其名称即可
在这个例子中,语句显然是在单独的行中输入的,这是怎么发生的呢?另外,我无法以任何方式运行您的第二个示例。是否可以显式地运行第一个示例,而不依赖于行顺序?在这方面,该示例有点马虎。命令是正确的,但在命令行中键入命令时,情况并非如此。我用更多的例子更新了答案。虽然我不知道你所说的“依赖线路顺序”是什么意思,但我希望你能在这些示例中找到你想要的:
In [1]: import matplotlib.pyplot as plt
In [2]: import matplotlib.image as mpimg
In [3]: plt.ion()
In [4]: img = mpimg.imread('/tmp/stinkbug.png')
In [5]: lum_img = img[:, :, 0]
In [6]: plt.imshow(lum_img)
Out[6]: <matplotlib.image.AxesImage at 0x7f7f2061e9b0>
In [7]: plt.colorbar()
Out[7]: <matplotlib.colorbar.Colorbar at 0x7f7f20605128>