代码之家  ›  专栏  ›  技术社区  ›  Luis Ramon Ramirez Rodriguez

使用**kwds时避免大熊猫更改绘图颜色

  •  1
  • Luis Ramon Ramirez Rodriguez  · 技术社区  · 6 年前

    我正在和巨蟒合作,用熊猫来做情节。绘图的默认格式如下:

    enter image description here

    但是如果我做了一些更复杂的过滤,比如:

    s = (coupon_list[[ 'USABLE_DATE_MON', 'USABLE_DATE_TUE', 'USABLE_DATE_WED',
           'USABLE_DATE_THU', 'USABLE_DATE_FRI', 'USABLE_DATE_SAT',
           'USABLE_DATE_SUN','DISCOUNT_PRICE']].melt("DISCOUNT_PRICE", var_name='days', value_name='data')
                    .assign(days = lambda x: pd.Categorical(x['days'], 
                                                            ordered=True, 
                                                            categories=days))
                    .query('data == 1')
                    .groupby("days")['DISCOUNT_PRICE']
                    .mean())
    
    s.plot.bar()
    

    格式改为嘉年华

    enter image description here

    现在我不知道如何用和其他图像相同的格式来绘制它。

    我尝试了补充论点cmap:

    s = (coupon_list[[ 'USABLE_DATE_MON', 'USABLE_DATE_TUE', 'USABLE_DATE_WED',
           'USABLE_DATE_THU', 'USABLE_DATE_FRI', 'USABLE_DATE_SAT',
           'USABLE_DATE_SUN','DISCOUNT_PRICE']].melt("DISCOUNT_PRICE", var_name='days', value_name='data')
                    .assign(days = lambda x: pd.Categorical(x['days'], 
                                                            ordered=True, 
                                                            categories=days))
                    .query('data == 1')
                    .groupby("days")['DISCOUNT_PRICE']
                    .mean())
    
    s.plot.bar(cmap='Blues_r')
    

    但我在那里找不到相同的颜色:

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  1
  •   ALollz    6 年前

    你所看到的是 DataFrame 相对A Series 当使用 bar 情节。你可以使用 s.to_frame().plot.bar() 转向你 系列 变成一个 数据文件 在绘制出单一颜色之前:

    import pandas as pd
    import numpy as np
    df = pd.DataFrame({'col1': np.random.randint(1,10,20)})
    

    数据文件

    df[['col1']].plot(kind='bar')
    

    enter image description here

    系列:

    df['col1'].plot(kind='bar')
    

    enter image description here

    你可以看到,在条形图的情况下, 数据文件 颜色是单个值 系列 以及 系列 由列名称标记。当你做某事时 酒吧 用一个系列打印,为每个索引循环一个新颜色,默认情况下不提供标签。

        2
  •  2
  •   SpghttCd    6 年前

    也许你可以试试

    s.plot.bar(color='#1f77b4')