0

Korean in pictures is not important. Sorry for showing non-english character

environment : Jupyter notebook

here is python dataFrame, which import csv file.

For this dataFrame(which read csv files), I want to make bar graph which has specific colors on each item.

so, I make some code like that...

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
font_name =font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
from matplotlib import colors as mcolors
colors=dict(mcolors.BASE_COLORS,**mcolors.CSS4_COLORS)

data = pd.read_csv('subway.csv')
subwayPassengerPerLine.plot.bar(color=['tab:blue','tab:green','tab:orange','tab:cyan','tab:purple','tab:brown','tab:green','tab:pink','tab:gold','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black','tab:black'])

I want to make like this one hope result

But My code(upper code) doesn't change color.my result(fail)

how to change color in bar graph like second image? thanks

Community
  • 1
  • 1
Yang
  • 161
  • 1
  • 7

1 Answers1

1

I believe, you don't need to use tab:"black" ...etc.

Just using

subwayPassengerPerLine.plot.bar(y = 'sum',color=['blue','green','orange','cyan','purple','brown','green','pink','gold','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black','black'])

This can also help if you want to automate your plot color.

How to pick a new color for each plotted line within a figure in matplotlib?

Doc reference

https://python-graph-gallery.com/3-control-color-of-barplots/

Edited: Missed the y = 'sum' field. If you want to remove the useless legend, add this line too:

subwayPassengerPerLine.get_legend().remove()
Jason Chia
  • 1,144
  • 1
  • 5
  • 18
  • After reviewing with tab:color, it should also work. Did you try redrawing your graph? – Jason Chia Nov 05 '19 at 16:09
  • yes, I did redrawing graph, and also did reRun whole code. I also upload whole code, but It doesn't work. – Yang Nov 05 '19 at 16:11
  • subwayPassengerPerLine.plot.bar(color=['blue','green','orange','cyan', 'purple','brown','green','pink','gold','black', 'black','black','black','black','black','black', 'black','black','black','black','black','black', 'black','black','black']) – Yang Nov 05 '19 at 16:12
  • also, I changed gold to green, same result occurred(color doesn't changed) – Yang Nov 05 '19 at 16:21
  • 1
    My bad, missed a line. I have edited my answer. Please try it again. – Jason Chia Nov 05 '19 at 17:00
  • Solved well. Thanks for your help:) – Yang Nov 06 '19 at 02:27