Pandas 如何在计算时绘制两个不同的特征?

Pandas 如何在计算时绘制两个不同的特征?,pandas,matplotlib,plot,graph,data-visualization,Pandas,Matplotlib,Plot,Graph,Data Visualization,假设我有这样一个数据帧: *Age* *RemoteWork* 18 Sometimes 24 Never 30 Sometimes 15 Never 24 Sometimes 事情就是这样 我将如何绘制一个图表,例如“显示有多少24岁的年轻人在从不组队” 假设有更多的年龄和远程工作值。我基本上是试图创建一个年龄直方图,显示远程工作的价值和计数 如果这不是很清楚,我很抱歉。如果您需要更多信息,请告诉我。很明显,您的示例数据集是有限的,没有其他属性。你真的需要考虑你想如何想象,然后它是

假设我有这样一个数据帧:

*Age* *RemoteWork*
18  Sometimes
24  Never
30  Sometimes
15  Never
24  Sometimes
事情就是这样

我将如何绘制一个图表,例如“显示有多少24岁的年轻人在从不组队”

假设有更多的年龄和远程工作值。我基本上是试图创建一个年龄直方图,显示远程工作的价值和计数


如果这不是很清楚,我很抱歉。如果您需要更多信息,请告诉我。

很明显,您的示例数据集是有限的,没有其他属性。你真的需要考虑你想如何想象,然后它是直接的。使用matplotlib两个示例

  • 分解y轴的散布(不需要仅用于演示)
  • 将年龄分为不同年龄段的堆叠条

  • pd.crosstab(df['Age',df['RemoteWork']).plot.bar()
    这也很好用,如果你把它作为答案贴出来,你会接受的。谢谢你,很好,谢谢。
    import matplotlib.pyplot as plt
    
    df = pd.read_csv(io.StringIO("""*Age* *RemoteWork*
    18  Sometimes
    24  Never
    30  Sometimes
    15  Never
    24  Sometimes"""), sep="\s+")
    
    
    fig, ax = plt.subplots(1,2, figsize=[10,5],
                          sharey=False, sharex=False, gridspec_kw={"hspace":0.3})
    
    (df
     .assign(a=lambda dfa: ((dfa["*Age*"]//10)*10).astype(str)+"-"+(((dfa["*Age*"]//10)*10)+9).astype(str))
     .groupby(["a","*RemoteWork*"])
     .agg("count")
     .unstack(0)
     .droplevel([0], axis=1)
     .plot(ax=ax[1],kind="bar", stacked=True)
    )
    ax[1].set_xlabel("Stacked", weight='bold', fontsize=12)
    
    
    (df
     .assign(y=lambda dfa: pd.factorize(dfa["*RemoteWork*"])[0])
     .plot(ax=ax[0],kind="scatter", x="*Age*", y="y", c="*Age*", s="*Age*", colormap="jet")
    )
    ax[0].set_xlabel("Scatter", weight='bold', fontsize=12)