ggplot中的ggsave()在Python中无法保存。

4
我已经将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.
2个回答

5

你找不到图表的原因是因为它们保存在当前工作目录中。如果你没有更改任何内容,那么这将是Python的默认目录。调用 os.getcwd() 来获取你的当前目录,然后前往该目录查找图表。或者在调用 ggsave 时定义路径来保存所有内容到预定位置。

ggsave(plot = p, filename = file_name, path = "C:\Documents\Graphs")

我也想指出,User3926962在命名ggsave方法方面是正确的,但如果您首先列出图形值来定义参数,则还需要指定p为图形。您需要这样做的原因是因为ggsave调用文件名之前会调用图形,所以如果您运行:

ggsave(p, filename = file_name)

如果您遇到以下错误:

TypeError: ggsave() got multiple values for argument '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)

链接


3
链接失效。看起来在Python的ggplot中已将ggsave移除。 - Dima Lituiev
4
它已被 ggplot 类上的 save() 方法取代:p.save(filename, width=None, height=None, dpi=180)。来源:https://github.com/yhat/ggpy/blob/master/ggplot/ggplot.py#L536。 - Johan

0
以下满足保存文件名
ggsave(p,file_name)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接