python ggplot很棒,但还是新的,我发现需要回退传统的matplotlib技术来修改我的情节.但我不知道如何将轴实例传递给ggplot,或者从中获取一个实例.
所以让我说我建立一个这样的情节:
import ggplot as gp
Run Code Online (Sandbox Code Playgroud)
(明确导入)
p = gp.ggplot(gp.aes(x='basesalary', y='compensation'), data = df)
p + gp.geom_histogram(binwidth = 10000)
Run Code Online (Sandbox Code Playgroud)
到目前为止没问题.但现在让我们说我希望y轴在对数范围内.我希望能够这样做:
plt.gca().set_yscale('log')
Run Code Online (Sandbox Code Playgroud)
不幸的是,plt.gca()没有访问创建的轴ggplot.我最终得到两个数字:来自ggplot的线性刻度的直方图,以及带有对数刻度y轴的空图.
我已经试过这两个数的变化gca()而gcf()没有成功.
我像这样构建一个pandas数据帧:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100,3), columns=['A','B', 'C'])
df['X'] = np.random.choice(['Alpha', 'Beta', 'Theta'], size=100)
Run Code Online (Sandbox Code Playgroud)
这给了我df.head():
A B C X
0 2.279163 -1.790076 1.187603 Beta
1 -0.590897 0.837605 -0.606424 Alpha
2 0.448334 -1.142946 0.002507 Beta
3 0.540165 -0.204184 1.389645 Beta
4 0.105643 -1.298379 -1.404680 Beta
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用列'X'(其中有三个值之一)绘制安德鲁斯曲线作为类,我希望看到100条基于X类的三种颜色的曲线.相反,每条曲线都有自己的颜色.
pd.tools.plotting.andrews_curves(df, 'X')
Run Code Online (Sandbox Code Playgroud)

(传奇看起来很有意思,这很有趣.)
这里有错误还是我误解了事情?
我想听听有关这个问题的意见:之后有很多代码是不错的主意
if __name__ == '__main__':
我问这个的原因是,我当前的项目有大约400行代码,随着它的增长,我继续在上面的语句之后添加行.所以这个程序预计会有大约3000行代码,我很担心,在这个语句之后我会有太多的代码.所以问题是"在这个声明之后编写大量代码是一种很好的pythonic方法吗?"