我正在尝试在 matplotlib 子图中嵌入一个 SVG 图像。
matplotlib 只能在本机读取 PNG,但是如果安装了 PIL,它将使用它来加载图像并返回一个可以与 imshow() 一起使用的数组(如果可能)。 http://matplotlib.sourceforge.net/api/pyplot_api.html
import Image
filename = "/tmp/figure.svg"
pil_img = Image.open(filename) # PIL image
img = np.asarray(pil_img) # converting PIL image into numpy array
self.axes.cla()
self.axes.imshow(img)
Run Code Online (Sandbox Code Playgroud)
但当然 PIL 不支持 SVG。错误:
文件“/usr/lib/python2.7/dist-packages/PIL/Image.py”,第 1980 行,打开
引发 IOError("无法识别图像文件")
IOError:无法识别图像文件
如何光栅化 SVG 文件以imshow使用 matplotlib绘制或直接绘制向量?
谢谢。
我想在我的情节中使用大括号 '}',所有这些都具有不同的高度,但宽度相同。到目前为止,缩放文本时,宽度按比例缩放:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax.text(0.2, 0.2, '}', fontsize=20)
ax.text(0.4, 0.2, '}', fontsize=40)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想到的唯一想法是用 matplotlib 图像覆盖大括号的图像,例如使用svgutils像导入 svg 文件中的 matplotlib 图形,但这很麻烦。
将矢量图形作为输出的解决方案将是理想的。