简体   繁体   中英

How do I plot subplots with different labels from pandas dataframe columns using matplotlib

I have the following code to print out columns from a pandas dataframe as two histograms:

df = pd.read_csv('fairview_Procedure_combined.csv')

ax = df.hist(column=['precision', 'recall'], bins=25, grid=False, figsize=(12,8), color='#86bf91', zorder=2, rwidth=0.9)

ax = ax[0]
for x in ax:

    # Despine
    x.spines['right'].set_visible(False)
    x.spines['top'].set_visible(False)
    x.spines['left'].set_visible(False)

    # Switch off ticks
    x.tick_params(axis="both", which="both", bottom="off", top="off", labelbottom="on", left="off", right="off", labelleft="on")

    # Draw horizontal axis lines
    vals = x.get_yticks()
    for tick in vals:
        x.axhline(y=tick, linestyle='dashed', alpha=0.4, color='#eeeeee', zorder=1)

    # Remove title
    x.set_title("")

    # Set x-axis label
    x.set_xlabel("test", labelpad=20, weight='bold', size=12)

    # Set y-axis label
    x.set_ylabel("count", labelpad=20, weight='bold', size=12)

    # Format y-axis label
    x.yaxis.set_major_formatter(StrMethodFormatter('{x:,g}'))

which gives the attached output:

在此处输入图片说明

I would like however to have different labels on the x-axis (in particular, those listed in my column list, that is, precision and recall )

Also, I have a grouping column ( semantic_type ) I would like to use to generate a bunch of paired graphs, but when I pass the by keyword in my hist method to group the histograms by semantic_type , I get an error of color kwarg must have one color per data set. 18 data sets and 1 colors were provided color kwarg must have one color per data set. 18 data sets and 1 colors were provided )

我想通了使用子图......小菜一碟。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM