代码之家  ›  专栏  ›  技术社区  ›  Ahmed Fasih

当Pandas在带有颜色标签的多个子图中创建散点图时,无法设置xlabel

  •  0
  • Ahmed Fasih  · 技术社区  · 6 年前

    我无法设置 xlabel 什么时候

    • 我用熊猫做 scatter
    • 在多个子批次内
    • 并指定 c 颜色列属性。

    X标签 :

    import numpy as np
    import pandas as pd
    import pylab as plt
    plt.ion()
    
    foo = pd.DataFrame(np.random.randn(5, 5), columns='a b c d e'.split())
    
    fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
    foo.plot.scatter(x='a', y='b', ax=ax1)
    foo.plot.scatter(x='a', y='c', ax=ax2)
    ax2.set_xlabel('xxx')  # works
    

    不过,下面稍微扭转一下,我在这里设置了颜色 c 字段,不设置 X标签 :

    fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
    foo.plot.scatter(x='a', y='b', ax=ax1, c='c')
    foo.plot.scatter(x='a', y='c', ax=ax2, c='c')
    ax2.set_xlabel('xx')  # NO x label
    

    plt.xlabel 也不管用。 ax2.get_xlabel() "xx" 我想,但看不见:

    no x label

    编辑:从数字列名移到文本列名,因为这会引起混乱。

    0 回复  |  直到 6 年前
        1
  •  1
  •   William Miller devops-admin    6 年前

    xlabel的可见性设置为 False 出于某种原因,你只需要做

    fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
    foo.plot.scatter(x='a', y='b', ax=ax1, c='c')
    foo.plot.scatter(x='a', y='c', ax=ax2, c='c')
    ax2.set_xlabel('xxx')
    ax2.xaxis.get_label().set_visible(True)
    

    这会给你

    enter image description here