【问题标题】:pandas scatter plot and groupby does not work熊猫散点图和 groupby 不起作用
【发布时间】:2019-12-10 13:48:13
【问题描述】:

我正在尝试用熊猫做一个散点图。不幸的是kind='scatter' 不起作用。如果我将其更改为kind='line',它将按预期工作。我能做些什么来解决这个问题?

for label, d in df.groupby('m'):
    d[['te','n']].sort_values(by='n', ascending=False).plot(kind="scatter", x='n', y='te', ax=ax, label='m = '+str(label))```

【问题讨论】:

    标签: pandas scatter-plot


    【解决方案1】:

    改用plot.scatter:

    df = pd.DataFrame({'x': [0, 5, 7,3, 2, 4, 6], 'y': [0, 5, 7,3, 2, 4, 6]})
    df.plot.scatter('x', 'y')
    

    如果您想要单独的标签和颜色,请使用此 sn-p:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    df = pd.DataFrame({
        'm': np.random.randint(0, 5, size=100),
        'x': np.random.uniform(size=100),
        'y': np.random.uniform(size=100),
    })
    
    fig, ax = plt.subplots()
    for label, d in df.groupby('m'):
        # generate a random color:
        color = list(np.random.uniform(size=3))
        d.plot.scatter('x', 'y', label=f'group {label}', ax=ax, c=[color])
    

    【讨论】:

    • 谢谢,这可行,但传说不正确。如果我使用 groupby,所有组的标签都是相同的。
    • 您仍然可以像以前一样使用label='m = '+str(label) 设置标签。
    • 我知道,但它们都是一样的(所以在我的例子中,它们都是蓝点,而不是我的组的颜色)
    • 你应该改变颜色参数。让我添加一个简单的例子
    • 太棒了。非常感谢。还有一件事,我得到不透明度低的颜色,所以你看不到它。有没有办法改变这个?或者只选择“r”、“g”、“k”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 2020-11-16
    • 1970-01-01
    相关资源
    最近更新 更多