我想将图像列表读入Python /
Matplotlib,然后在图形中绘制此图像而不是其他标记(如点)。我曾尝试使用imshow,但未成功,因为我无法将图像移到另一个位置并适当缩放。也许有人有一个好主意:)
有两种方法可以做到这一点。
imshow
带有extent
kwarg集的图像进行绘制。OffsetImage
里面使用AnnotationBbox
。第一种方法最容易理解,但是第二种方法具有很大的优势。k注解框方法将使图像在放大时保持恒定大小。使用imshow
将图像的大小与图的数据坐标绑定。
这是第二个选项的示例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
from matplotlib.cbook import get_sample_data
def main():
x = np.linspace(0, 10, 20)
y = np.cos(x)
image_path = get_sample_data('ada.png')
fig, ax = plt.subplots()
imscatter(x, y, image_path, zoom=0.1, ax=ax)
ax.plot(x, y)
plt.show()
def imscatter(x, y, image, ax=None, zoom=1):
if ax is None:
ax = plt.gca()
try:
image = plt.imread(image)
except TypeError:
# Likely already an array...
pass
im = OffsetImage(image, zoom=zoom)
x, y = np.atleast_1d(x, y)
artists = []
for x0, y0 in zip(x, y):
ab = AnnotationBbox(im, (x0, y0), xycoords='data', frameon=False)
artists.append(ax.add_artist(ab))
ax.update_datalim(np.column_stack([x, y]))
ax.autoscale()
return artists
main()
问题内容: 我正在编写一个快速脚本来动态生成绘图。我使用下面的代码(来自Matplotlib文档)作为起点: 我不想将图形显示在GUI上,而是要将图形保存到文件(例如foo.png)中,以便可以在批处理脚本中使用它。我怎么做? 问题答案: 在回答问题后,我想在使用matplotlib.pyplot.savefig时添加一些有用的提示。文件格式可以通过扩展名指定: 将分别给出栅格化或矢量化的输出,这
问题内容: 我已经使用matplotlib绘制了一些实验结果。但是,通过单击图像右侧来保存图片会产生非常差的质量/低分辨率图像。 我正在寻找的示例图:示例图 问题答案: 您可以用来导出到图像文件: 另外,您可以为某些标量值指定参数,例如:
我有一张桌子,比如: 生成虚拟数据: 我想用垫线 (v1.4) 在 Python 3 中完成一个任务: 绘制的直方图 按 两个小时,未能获得所需的直方图 我阅读了matplotlib的示例和用户指南。令人惊讶的是,我没有找到关于如何从颜色图中指定颜色的教程 我在谷歌上搜索过,但没有找到一个简洁的例子 我想一个人可以用,不导入一系列模块,例如,
问题内容: 我需要能够以编程方式在图像上进行绘制,并保存该图像以备后用。说,在图像上的特定x和y坐标上画一条线,保存图像,并将其显示在简单的视图控制器上。我将如何在Swift中进行此操作?(最好是Swift 2,我仍在开发中,还没有将我的mac更新到Sierra) 更新:可能与将UIImage转换为CGLayer,在其上绘制然后再将其转换回UIImage有关。 问题答案: 这很简单: 设置图像图形
输出为: matplotlib.figure.figure位于0x536ea70 我想看到空的情节,我正在通过pycon教程相同的代码产生了一个空的情节。
除了绘制矢量图形和文本之外,canvas还提供了极为丰富的图像支持。开发者可以选择绘制某幅图像的全部或某个部分,在绘制时可以进行缩放或保持原样,可以把图像绘制到画布的任何地方。同时,还允许开发人员直接访问画布的像素数据。数据访问是双向的,既可以获取画布中的像素数据,也可以把像素重新绘制到画布中。 Canvas的API提供了如下4个用于绘制及操作图像的方法: drawImage():把图像、或另一个