我已经将ggplot导入到python中,并运行以下脚本,希望ggsave()能够将我的绘图保存到某个地方,但是它似乎并没有向一个脚本写入任何内容。png文件供以后使用。当我在解释器中将其作为p返回时,将返回绘图,但我必须手动保存它。
import ggplot
#d as some pandas dataframe
k = [2,3,4,5]
for i in k:
p = ggplot(d, aes(x='x', y='y', color='cluster'+str(i))) + geom_point(size=75) + ggtitle("Cluster Result: "+str(i))
file_name = "Clusters_"+str(i)+'.png'
#this is not saving to any directory
ggsave(p,file=file_name)
这是解释器中的输出。。。但没有文件保存到任何目录。
Saving 11.0 x 8.0 in image.
Saving 11.0 x 8.0 in image.
Saving 11.0 x 8.0 in image.
Saving 11.0 x 8.0 in image.
Saving 11.0 x 8.0 in image.
Saving 11.0 x 8.0 in image.
找不到图形的原因是因为它们保存在当前工作目录中。如果您没有更改任何内容,这将是Python的默认目录。调用os.getcwd()
获取当前目录,然后转到那里获取图形。或者,您可以通过在调用gg保存
时定义路径将所有内容保存到预定位置。
ggsave(plot = p, filename = file_name, path = "C:\Documents\Graphs")
我还想指出,就ggsave
的命名方法而言,User3926962很接近,但是如果您使用首先列出的绘图值定义参数,那么您还需要指定p是绘图。需要这样做的原因是ggsave
在调用绘图之前调用文件名,因此如果运行:
ggsave(p, filename = file_name)
你会得到错误:
TypeError:ggsave()为参数“filename”获取了多个值
要解决这个问题,只需定义您的情节:
ggsave(plot = p, filename = file_name)
资料来源:
ggsave(filename = None, plot = None, device = None, format = None,
path = None, scale = 1, width = None, height = None, units = "in",
dpi = 300, limitsize=True, **kwargs)
链接
下面的示例保存文件名
ggsave(p,file_name)