google Colabs Notebook 中保存的图像与本地计算机中保存的图像不同
Posted
技术标签:
【中文标题】google Colabs Notebook 中保存的图像与本地计算机中保存的图像不同【英文标题】:Image saved in google Colabs Notebook is not identical to the image saved in local machine 【发布时间】:2021-07-30 04:11:06 【问题描述】:我使用 matplotlib 创建了一个图形,并使用 savefig 函数保存了它。 以下是我使用的代码,
import matplotlib.pyplot as plt
x = [0, 2, 4, 6]
y = [1, 3, 4, 8]
plt.plot(x,y)
plt.xticks([]), plt.yticks([])
plt.box(False)
plt.savefig('plot.png')
plt.show()
当我在 google colabs 中运行以下代码时,它会生成一个尺寸为 432 x 288 的图像 当我在我的 本地机器 上运行相同的代码时,它会生成一个尺寸为 640 x 480
的图像所以我尝试通过添加以下更改来调整我在本地机器中生成的图像的大小
plt.figure(figsize=(4.32, 2.88))
使用以下代码验证两张图片是否完全相同,但它们不相同。
import PIL.Image, PIL.ImageChops
im1 = PIL.Image.open(colab_image.png')
im2 = PIL.Image.open(local_image.png')
if list(im1.getdata()) == list(im2.getdata()):
print("Identical");
else:
print("Different");
colab 和 我的本地机器 环境都有 -> python 3.7.0 64bit, matplotlib == 3.2.2
请帮我解决这个问题。因为,我不知道为什么会这样。非常感谢您的帮助。
这是 colab 笔记本
的 link谢谢和最好的问候。
【问题讨论】:
如果您在本地运行关注,您会得到什么?from matplotlib.pyplot import figure fig = plt.figure() size = fig.get_size_inches()*fig.dpi # size in pixels print(size)
,那里的图表看起来不错,因为大小可以设置在操作系统级别。对我来说,mac 给了[432. 288.] <Figure size 432x288 with 0 Axes>
嗨@simpleApp,感谢您的快速回复。我正在使用 Windows 10 操作系统,运行您在我的本地机器中提到的代码后,我得到了 [640. 480.]。在 colabs 我有 [432. 288.].
@simpleApp 图表绘制正常,但问题在于图像的分辨率。在 colabs 和我的本地机器中生成的图像的分辨率是不同的。如果我使用我在问题中提到的代码将本地机器生成的图像从 640 x 480 重塑为 432 x 288,则 colab 图像和重塑后的图像看起来相同但不相同。我想在我的本地机器上创建与我在 colabs 中创建的完全相同的图像。
所以这里是os发挥作用,你可以尝试让这两行代码from matplotlib.pyplot import figure figure(figsize=(20, 20), dpi=10)
在'plt.plot(x,y)'之前设置大小和dpi /跨度>
@simpleApp 我添加了代码行。现在本地机器和 colab 都会生成 200 x 200 的图像。我比较了它们,它们仍然不相同。加上colab镜像大小为2.33KB,本地机器镜像大小为2.56KB。
【参考方案1】:
我认为可能存在操作系统兼容性问题。请分别在 windows 和 Linux/Mac 环境下检查代码。
【讨论】:
我在mac和Linux环境下运行代码。但是,这两次我都得到了相同的 640 x 480 图像。我很惊讶@simpleApp 能够在他的 mac 环境中生成 432x288 大小的图像,但我没有:|以上是关于google Colabs Notebook 中保存的图像与本地计算机中保存的图像不同的主要内容,如果未能解决你的问题,请参考以下文章
如何在不需要自定义库的情况下在 Google Colabs 上使用 Selenium IDE,例如科拉?
Google Colab Notebook 的外部文件引用配置
在 Google Colaboratory Notebook 上安装 GeoViews
Google Collab Notebook创建的绘图大小与普通Python脚本不同
Google Cloud 不允许访问 Jupyter Notebook
在 VM 引擎中导入 google.colab 不会让我在 Google Colab 中运行 Jupyter Notebook?