【发布时间】:2014-09-14 06:10:53
【问题描述】:
我有一个包含“因子”、浮点数和整数的 pandas 数据框。我想使用分类变量的条件和分组来制作“R Lattice”之类的图。我已经广泛使用 R 并编写了自定义面板函数来使绘图完全按照我想要的方式格式化,但是我正在努力使用 matplotlib 来简洁地做相同类型的绘图。我正在玩布局和 subplot2grid,但似乎无法正确处理。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
nRows = 500
df = pd.DataFrame({'c1' : np.random.choice(['A','B','C','D'], size=nRows),
'c2' : np.random.choice(['P','Q','R'], size=nRows),
'i1' : np.random.randint(20,50, nRows),
'i2' : np.random.randint(0,10, nRows),
'x1' : 3 * np.random.randn(nRows) + 90,
'x2' : 2 * np.random.randn(nRows) + 89})
我想绘制如下内容(R 格代码示例)
每级 c1 的 x1 与 x2(格子代码)
xyplot(x1 ~ x2 | c1, data = df)
具有“全局”图例 c2(符号或颜色)的 c1 的每个级别的 x1 与 x2
xyplot(x1 ~ x2 | c1, groups = c2, data = df)
每个 c2 的 x1 直方图
hist (~x1 | c1, data = df)
我也在尝试制作“条件”等高线图,例如此处生成的那些 (1.4.4.4)
https://scipy-lectures.github.io/intro/matplotlib/matplotlib.html
我已经阅读了这些示例: http://nbviewer.ipython.org/github/fonnesbeck/Bios366/blob/master/notebooks/Section2_4-Matplotlib.ipynb
但是,我希望从分类条件(或“按”)变量中的级别数生成布局。即指定列数,然后将根据数字级别计算行数。
感谢任何好的建议或朝着正确方向迈出的步伐。我宁愿不使用 rpy2 或 python ggplot(我把它们弄乱了 - 发现它们也令人沮丧和限制)。
谢谢! 兰德尔
【问题讨论】:
-
在 pandas 中有一些用于格状图的实验代码:pandas.pydata.org/pandas-docs/stable/rplot.html。那会有帮助吗?另请参阅ggplot.yhathq.com,它类似于 R 中的 ggplot,它支持分面网格。
-
您能否为等高线图问题添加一些示例。 Seaborn 具有 hexbins 和 2 维 kde 图的功能,我认为这可以满足您的需求。
标签: python r matplotlib pandas lattice