如何保存整个图表而不被切断? [复制]

Posted

技术标签:

【中文标题】如何保存整个图表而不被切断? [复制]【英文标题】:How do I save the entire graph without it being cut off? [duplicate] 【发布时间】:2019-09-20 09:35:42 【问题描述】:

我正在尝试使用 myplotlib 绘制饼图,并且我能够设置间距,而使用 plt.show() 的最终结果正是我想要的。但是,每当我尝试使用 plt.savefig("file path name here.png") 保存我的图时,标签的标题和部分都会被切断。

我尝试过使用plt.tight_layout(),但是这完全消除了我事先设置的所有间距。我还尝试了plt.savefig("file path name.png", dpi=...),但这只会增加保存的 png 的大小,创建一个更大的图像,其标题和标签被截断。

Dict_July=dict(Apps["July"].value_counts())
Dict_Aug=dict(Apps["August"].value_counts())
Dict_Sept=dict(Apps["September"].value_counts())
Dict_Oct=dict(Apps["October"].value_counts())
Dict_Nov=dict(Apps["November"].value_counts())
Dict_Jan=dict(Apps["January"].value_counts())
Dict_Feb=dict(Apps["Feb/Mar"].value_counts())
Dict_April=dict(Apps["April"].value_counts())

App_Errors=[Dict_July, Dict_Aug, Dict_Sept, Dict_Oct, Dict_Nov, Dict_Jan, Dict_Feb, Dict_April]

App_Names=["None","2020","CRM","Other","3C Logic","Outlook","Act-on","Foxit"]
colors=["c","orangered","lime","gold","mediumorchid","mediumslateblue","fuchsia","mediumspringgreen"]
july_leg_values=[]
july_legend=[]

for x in range(len(App_Names)):
    try:
        july_leg_values.append(App_Errors[0][App_Names[x]])
        july_legend.append(App_Names[x])
    except:
        "test"

plt.pie(july_leg_values, labels=july_legend,shadow=True,colors=colors, autopct="%1.1f%%", radius=1.6, explode=(.1,0,0,0,0,0,0,0))
plt.title("July 2017 App Errors",y=1.3,fontsize=14, fontweight="bold")

plt.savefig("./Images/July_App.png")

我创建的内容与保存的内容的示例是 here。

【问题讨论】:

radius=1.6 会创建一个比图形大的饼图,因此会被切掉。使用 radius =1 或类似方法在图中拥有完整的饼图。 那么有没有办法把图片原样保存呢?我将其设置为半径 1.6 以获得更多可见性,这就是为什么我避免使用 plt.tight_layout() 因为它将半径设置为 1。 如果您想要更大的数字,请使用plt.figure(figsize=(8,7)) 或您需要的任何数字。 【参考方案1】:

使用 bbox_inches='tight'

plt.savefig('file_name.png', bbox_inches='tight')

【讨论】:

以上是关于如何保存整个图表而不被切断? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

[SVG样式缩放样式而不被切断

如何使我的物化文本区域不被切断?

Python:Savefig 切断标题

我应该如何保护我的 iOS 应用程序中的敏感内容不被截图? [复制]

如何调整matplotlib图表图[重复]

Babel 文件被复制而不被转换