【问题标题】:Plotting one scatterplot with multiple dataframes with ggplot in python在python中使用ggplot绘制一个带有多个数据框的散点图
【发布时间】:2014-04-18 02:57:37
【问题描述】:

我试图从两个单独的数据帧中获取数据到同一个散点图上。我在 R 中看到了使用类似以下内容的解决方案:

ggplot() + geom_point(data = df1, aes(df1.x,df2.y)) + geom_point(data = df2,aes(df2.x, df2.y))

但在 python 中,使用 ggplot 模块时,当我尝试使用不带参数的 ggplot() 时出现错误。这只是模块的限制吗?我知道我可能会使用其他工具进行绘图,但如果可能的话,我更喜欢 ggplot 解决方案。

我的第一个数据帧由每 2 分钟一次的电压信息和每一个小时一次的温度信息组成,因此这两个数据帧的组合不是 1 比 1。此外,我更愿意坚持使用 Python,因为我的解决方案的其余部分都在 python 中.

【问题讨论】:

    标签: python r python-ggplot


    【解决方案1】:

    只需将一个数据框作为 ggplot() 的参数,另一个在第二个 geom_point 声明中就可以了:

    ggplot(aes(x='x', y='y'), data=df1) + geom_point() + 
           geom_point(aes(x='x', y='y'), data=df2)
    

    (我更喜欢使用列名表示法,我觉得更优雅,但这只是个人喜好)

    【讨论】:

    • 行得通,谢谢。因此,'base' ggplot 需要自己的数据集,后续 geom_point() 使用可以添加不同的数据集。这就是它的要点吗?
    • 我第一次意识到这一点时也让我感到惊讶。我真的不知道不允许空 ggplot() 并在随后的 geom_point() 中包含数据的原因。也许该项目的主要开发人员之一可以更好地回答这个问题。
    • 我认为空的ggplot() 调用的错误来自不允许在每个几何图形中指定新的df。
    • 似乎不适用于 ggplot 0.11.2。我得到ValueError: First argument must be a sequence。第一个ggplot(...)+geom_point() 部分正在工作,第二个geom_point(aes(...), data = df2) 部分也在工作,但我不能+ 这两个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2014-12-18
    相关资源
    最近更新 更多