Jul*_*uli 4 python svg matplotlib
这是一个例子。接下来是 get 存储为 .png 的内容,这就是它在屏幕上的显示方式,它是正确的
接下来是 .svg,它对热图使用插值
它们都分别使用下一行代码存储
plt.savefig(filename,format='png')
plt.savefig(filename,format='svg')
Run Code Online (Sandbox Code Playgroud)
接下来是生成实际绘图的代码
def heatmapText(data,xlabels=[],ylabels=[],cmap='jet',fontsize=7):
'''
Heatmap with text on each of the cells
'''
plt.imshow(data,interpolation='none',cmap=cmap)
for y in range(data.shape[0]):
for x in range(data.shape[1]):
plt.text(x , y , '%.1f' % data[y, x],
horizontalalignment='center',
verticalalignment='center',
fontsize=fontsize
)
plt.gca()
if ylabels!=[]:
plt.yticks(range(ylabels.size),ylabels.tolist(),rotation='horizontal')
if xlabels!=[]:
plt.xticks(range(xlabels.size),xlabels.tolist(),rotation='vertical')
Run Code Online (Sandbox Code Playgroud)
对于这两个图,我使用了完全相同的函数,但以不同的格式存储。最后,屏幕中显示正确(如 .png 中所示)。
关于如何让 .svg 正确存储文件有什么想法吗?
基于http://matplotlib.org/examples/images_contours_and_fields/interpolation_none_vs_nearest.html
matplotlib `imshow(interpolation='nearest')` 有什么作用?
和
matplotlib 显示的图形与 show() 窗口中保存的图形不同
我建议尝试这个interpolation=nearest
下面的代码给了我相同的显示并保存为 svg 图:
import matplotlib.pyplot as plt
import numpy as np
A = np.random.rand(5, 5)
plt.figure(1)
plt.imshow(A, interpolation='nearest')
plt.savefig('fig',format='svg')
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |