在python ggplot中访问轴或图[英] Accessing axis or figure in python ggplot

本文是小编为大家收集整理的关于在python ggplot中访问轴或图的处理方法,想解了在python ggplot中访问轴或图的问题怎么解决?在python ggplot中访问轴或图问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

python ggplot 很棒,但仍然很新,我发现需要使用传统的 matplotlib 技术来修改我的绘图.但我不确定如何将轴实例传递给 ggplot,或者从中取回一个.

假设我像这样构建一个情节:

import ggplot as gp

(显式导入)

p = gp.ggplot(gp.aes(x='basesalary', y='compensation'), data = df)
p + gp.geom_histogram(binwidth = 10000)      

目前没有问题.但现在假设我想要对数刻度的 y 轴.我希望能够做到这一点:

plt.gca().set_yscale('log')

不幸的是,plt.gca() 不访问由 ggplot 创建的轴.我最终得到了两个数字:来自 ggplot 的线性比例直方图,以及一个带有对数比例 y 轴的空图.

我已经尝试了 gca() 和 gcf() 的一些变体,但都没有成功.

推荐答案

自 2013 年提出此问题以来,可能已经发生了一些变化.从 ggplot 生成 matplotlib 图形的方法是

g.make()

之后可以通过

获取图形和坐标轴
fig = plt.gcf()
ax = plt.gca()

或者,如果有更多轴,axes = fig.axes.

然后,可以在 matplotlib 中添加其他功能,如 这个问题的答案.

最后可以使用常用的savefig命令保存绘图.

完整示例:

import ggplot as gp
import matplotlib.pyplot as plt

# produce ggplot
g = gp.ggplot(gp.aes(x='carat', y='price'), data=gp.diamonds)
g = g + gp.geom_point()
g = g + gp.ylab(' ')+ gp.xlab(' ')
# Make
g.make()

# obtain figure from ggplot
fig = plt.gcf()
ax = plt.gca()
# adjust some of the ggplot axes' parameters
ax.set_title("ggplot plot")
ax.set_xlabel("Some x label")
plt.savefig(__file__+".png")
plt.show()

本文地址:https://www.itbaoku.cn/post/1727940.html

相关标签/搜索