在seaborn中,如何增加图形并保存为图像



在python3和pandas中,我有以下数据帧:

gastos_anuais.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 2 columns):
ano           5 non-null int64
valor_pago    5 non-null float64
dtypes: float64(1), int64(1)
memory usage: 280.0 bytes
gastos_anuais.reset_index()
index   ano     valor_pago
0   0   2014    13,082,008,854.37
1   3   2017    9,412,069,205.73
2   2   2016    7,617,420,559.22
3   1   2015    7,470,391,492.24
4   4   2018    7,099,199,179.11

我做了一个点图:

import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.pointplot(x='ano', y='valor_pago', data=gastos_anuais)
plt.xticks(rotation=65)
plt.grid(True, linestyle="--")
plt.title("Gastos Destinados pelo Governo Federal (2014-2018)n")
plt.xlabel("Anos")
plt.ylabel("Em bilhões de R$")
plt.show()

它奏效了。但我想:

  • 增加屏幕上显示的图表大小

  • 可以保存图像格式,例如jpeg文件

  • 我不明白为什么在图的标题下面出现"1e10">

请问,有人知道我该怎么做吗?

增大屏幕上显示的图表的大小

打印前添加sns.set(rc={'figure.figsize':(w, h)})。例如:

sns.set(rc={'figure.figsize':(20, 5)})

另存为jpg

保留对绘图的引用,获取图形并保存:

p = sns.pointplot(x='ano', y='valor_pago', data=gastos_anuais)
plt.xticks(rotation=65)
#...
# All your editions with `plt`
#...
fig = p.get_figure()
fig.savefig("gastos_anuais.jpg")

角落里的1e10是什么

这就是规模。这意味着y轴中显示的值应乘以10^10以恢复数据的实际值。

如果你想删除它,你可以使用:

plt.ticklabel_format(style='plain', axis='y')

但你需要对这些值做些什么,因为它们会扭曲图像。

最新更新