python - 在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')
但是你需要对这些值做一些事情,因为它们会扭曲图像。
推荐阅读
- php - 将订阅产品变体中的自定义元数据保存到订单
- python - 创建椭圆形 Python Tkinter 画布
- c++ - 如何从线程中获取变量?
- directx - 从 ID3D11VertexShader 或任何东西获取着色器字节码
- javascript - 如何重现这种翻转效果
- reactjs - React:根据日期顺序渲染
- javascript - Try/catch 处理程序的行为不一致
- odoo - 在 Odoo 12 的调试模式下,无法访问 Odoo 表单弹出窗口的视图详细信息?
- python - 如何在球体上生成数据集和概率分布
- android - 将 Room 和 Content Resolver 数据合并到一个对象中