从 Python 创建的绘图中导出 SVG 文件

Jul*_*Jul 2 python plot svg matplotlib

所以我尝试导出一些使用 matplotlib 和 seaborn 创建的绘图。

我用以下方法创建我的情节:

import pandas as pd
import matplotlib as plt
import matplotlib.pyplot as plt
from matplotlib import pyplot as plty
import seaborn as sns
%matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png', 'pdf')

df = pd.read_excel('test.xlsx', sheetname='IvT')

sns.set_style("white")
plt.figure(figsize=(12,10))
plt.xlabel('Test', fontsize=18)
plt.title ('Test', fontsize=22)
#sns.boxplot(df[['Short total']])
sns.boxplot(df[['Short total']])
plt.show()
Run Code Online (Sandbox Code Playgroud)

如果我尝试将其导出

matplotlib.pyplot.savefig("test.svg", format="svg")
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息说

-------------------------------------------------- ------------------------- NameError Traceback (最近一次调用最后一次) in () 1 ----> 2 matplotlib.pyplot.savefig("测试.svg”,格式=“svg”)

NameError:名称“matplotlib”未定义

Dav*_*idG 5

您似乎使模块的导入过于复杂。在代码中,您已导入matplotlib matplotlib.pyplotas plt。此外,已经导入后matplotlib.pyplot,您尝试使用再次执行此操作from matplotlib import pyplot

当您尝试保存文件时,您已经完成了matplotlib.pyplot.savefig,但您已经导入matplotlib.pyplotplt.

您显示的具体错误是因为,当您导入matplotlib本身时,您已将其导入 plt,这就是为什么错误显示matplotlib未定义。

为了解决这个问题,您需要像这样清理导入:

import pandas as pd
import matplotlib # if abbreviating this, use "as mpl"
import matplotlib.pyplot as plt

import seaborn as sns
%matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png', 'pdf')

df = pd.read_excel('test.xlsx', sheetname='IvT')

sns.set_style("white")
plt.figure(figsize=(12,10))
plt.xlabel('Test', fontsize=18)
plt.title ('Test', fontsize=22)
#sns.boxplot(df[['Short total']])
sns.boxplot(df[['Short total']])
plt.show()
Run Code Online (Sandbox Code Playgroud)

然后为了保存你的数字使用:

plt.savefig("test.svg", format="svg")
Run Code Online (Sandbox Code Playgroud)

记得先调用这个 plt.show()