Python 避免在使用**KWD时更改打印颜色
我正在用python开发一些EDA,使用pandas绘制绘图。绘图的默认格式如下所示:Python 避免在使用**KWD时更改打印颜色,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我正在用python开发一些EDA,使用pandas绘制绘图。绘图的默认格式如下所示: 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",
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()
但如果我做了一些更复杂的过滤,比如:
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:
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')
但我发现这里的颜色不一样:
也许你可以试试
s.plot.bar(color='#1f77b4')
您看到的是使用
条形图时,绘制数据帧
与绘制系列
的区别。您可以使用s.to_frame().plot.bar()
将系列
转换为数据帧
,然后再打印以获得单一颜色:
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1': np.random.randint(1,10,20)})
数据帧
系列:
您可以看到,在带有数据框的条形图的情况下,颜色是每个系列的单个值,并且系列由列名标记。使用序列进行条形图
打印时,将为每个索引循环一种新颜色,默认情况下不提供任何标签 我刚刚用pandas绘制了一个示例图,并在第一行对象上调用了get_c()
。但也许gimp的移液管可以在更短的时间内达到同样的效果——在台式机上,而不是在移动设备上……)plt.rcParams.get('axes.prop_cycle')
将按循环顺序为您提供默认matplotlib
颜色列表。谢谢!这仅仅是熊猫的事情还是跨语言的普遍现象?@LuisRamonRamirezRodriguez我相信这是pandas
开发者做出的决定。这种行为在他们的生活中被具体化了,像这样对待事情是有道理的。但是,当你第一次遇到这种情况时,你会感到有些不安。
df['col1'].plot(kind='bar')