https://github.com/pandas-dev/pandas/blob/3a7f956c30528736beaae5784f509a76d892e229/pandas/plotting/_core.py#L2649-L2666

import pandas as pd
import numpy as np
import matplotlib
get_ipython().magic(u'pylab inline')

# In[17]:
df = pd.DataFrame({'id': range(1,11), 'normcolor': np.random.rand(10), 'count': np.random.randint(0,100,(10))})

# In[21]:
colors = matplotlib.cm.hsv(df['normcolor'])
df.plot.bar('id','count', color=colors) # return plot with not color variation


# In[22]:
plt.bar(df['id'], df['count'], color=colors) # returns plot as expected

Current Output

Pandas df.plot.bar not showing colors as expected as compared to matplotlib

Correct Output

Pandas df.plot.bar not showing colors as expected as compared to matplotlib

Comment From: rajgupt

import pandas as pd
pd.show_versions()

INSTALLED VERSIONS

commit: None python: 2.7.12.final.0 python-bits: 32 OS: Windows OS-release: 10 machine: x86 processor: x86 Family 6 Model 58 Stepping 9, GenuineIntel byteorder: little LC_ALL: None LANG: None LOCALE: None.None

pandas: 0.20.3 pytest: 2.8.5 pip: 9.0.1 setuptools: 23.0.0 Cython: 0.23.4 numpy: 1.13.1 scipy: 0.19.1 xarray: None IPython: 4.2.0 sphinx: 1.3.5 patsy: 0.4.0 dateutil: 2.4.2 pytz: 2015.7 blosc: None bottleneck: 1.0.0 tables: 3.2.2 numexpr: 2.6.2 feather: None matplotlib: 1.5.1 openpyxl: 2.3.2 xlrd: 0.9.4 xlwt: 1.0.0 xlsxwriter: 0.8.4 lxml: 3.5.0 bs4: 4.4.1 html5lib: None sqlalchemy: 1.0.11 pymysql: None psycopg2: None jinja2: 2.8 s3fs: None pandas_gbq: None pandas_datareader: None None

Comment From: chris-b1

duplicate of #16822, PR to fix welcome! From that issue, df.plot.bar('id','count', color=[colors]) is apparently a workaround.