matplotlib Python에서 다른 막대 색상 설정
이 질문에 이미 답변이 있습니다.
- 특정 값 3 답변을 사용하여 막대 그래프의 각 막대 색상 변경
가정하면 아래와 같은 막대 차트가 있습니다.
각 캐리어마다 다른 색상을 설정하는 방법에 대한 아이디어가 있습니까? 예를 들어 AK는 Red, GA는 Green 등?
Python에서 Pandas와 matplotlib를 사용하고 있습니다.
>>> f=plt.figure()
>>> ax=f.add_subplot(1,1,1)
>>> ax.bar([1,2,3,4], [1,2,3,4])
<Container object of 4 artists>
>>> ax.get_children()
[<matplotlib.axis.XAxis object at 0x6529850>, <matplotlib.axis.YAxis object at 0x78460d0>, <matplotlib.patches.Rectangle object at 0x733cc50>, <matplotlib.patches.Rectangle object at 0x733cdd0>, <matplotlib.patches.Rectangle object at 0x777f290>, <matplotlib.patches.Rectangle object at 0x777f710>, <matplotlib.text.Text object at 0x7836450>, <matplotlib.patches.Rectangle object at 0x7836390>, <matplotlib.spines.Spine object at 0x6529950>, <matplotlib.spines.Spine object at 0x69aef50>, <matplotlib.spines.Spine object at 0x69ae310>, <matplotlib.spines.Spine object at 0x69aea50>]
>>> ax.get_children()[2].set_color('r') #You can also try to locate the first patches.Rectangle object instead of direct calling the index.
위의 제안에 대해 어떻게 정확히 ax.get_children ()을 열거하고 객체 유형이 직사각형인지 확인할 수 있습니까? 그렇다면 객체가 직사각형이면 다른 임의의 색상을 할당할까요?
간단하고 사용하기 .set_color
>>> barlist=plt.bar([1,2,3,4], [1,2,3,4])
>>> barlist[0].set_color('r')
>>> plt.show()
새 질문에 대해서는 그다지 어렵지 않지만 축에서 막대를 찾으면됩니다. 예 :
>>> f=plt.figure()
>>> ax=f.add_subplot(1,1,1)
>>> ax.bar([1,2,3,4], [1,2,3,4])
<Container object of 4 artists>
>>> ax.get_children()
[<matplotlib.axis.XAxis object at 0x6529850>,
<matplotlib.axis.YAxis object at 0x78460d0>,
<matplotlib.patches.Rectangle object at 0x733cc50>,
<matplotlib.patches.Rectangle object at 0x733cdd0>,
<matplotlib.patches.Rectangle object at 0x777f290>,
<matplotlib.patches.Rectangle object at 0x777f710>,
<matplotlib.text.Text object at 0x7836450>,
<matplotlib.patches.Rectangle object at 0x7836390>,
<matplotlib.spines.Spine object at 0x6529950>,
<matplotlib.spines.Spine object at 0x69aef50>,
<matplotlib.spines.Spine object at 0x69ae310>,
<matplotlib.spines.Spine object at 0x69aea50>]
>>> ax.get_children()[2].set_color('r')
#You can also try to locate the first patches.Rectangle object
#instead of direct calling the index.
복잡한 플롯이 있고 먼저 막대를 식별하려면 다음을 추가하십시오.
>>> import matplotlib
>>> childrenLS=ax.get_children()
>>> barlist=filter(lambda x: isinstance(x, matplotlib.patches.Rectangle), childrenLS)
[<matplotlib.patches.Rectangle object at 0x3103650>,
<matplotlib.patches.Rectangle object at 0x3103810>,
<matplotlib.patches.Rectangle object at 0x3129850>,
<matplotlib.patches.Rectangle object at 0x3129cd0>,
<matplotlib.patches.Rectangle object at 0x3112ad0>]
데이터를 플로팅하기 위해 Series.plot ()을 사용하고 있다고 가정합니다. 여기 Series.plot ()에 대한 문서를 보면 :
http://pandas.pydata.org/pandas-docs/dev/generated/pandas.Series.plot.html
막대 그래프의 색상을 설정할 수있는 색상 매개 변수가 나열되어 있지 않습니다 .
그러나 Series.plot () 문서는 매개 변수 목록의 끝에 다음을 명시합니다.
kwds : keywords
Options to pass to matplotlib plotting method
무엇을 의미하는 것은 당신이 지정할 때이다 종류 Series.plot () 등을위한 인수 바 실제로) matplotlib.pyplot.bar () 및 matplotlib.pyplot.bar을 (호출), Series.plot (모든 여분을 보내드립니다 Series.plot ()의 인수 목록 끝에 지정하는 키워드 인수입니다.
여기서 matplotlib.pyplot.bar () 메서드에 대한 문서를 살펴보면 :
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
..it는 또한 매개 변수 목록 끝에 키워드 인수를 허용하며, 인식 된 매개 변수 이름 목록을 자세히 살펴보면 그중 하나는 color 이며 막대 그래프에 대해 다른 색상을 지정하는 시퀀스 일 수 있습니다.
모두 합쳐서 Series.plot () 인수 목록 끝에 color 키워드 인수 를 지정 하면 키워드 인수가 matplotlib.pyplot.bar () 메서드로 전달됩니다. 증거는 다음과 같습니다.
import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series(
[5, 4, 4, 1, 12],
index = ["AK", "AX", "GA", "SQ", "WN"]
)
#Set descriptions:
plt.title("Total Delay Incident Caused by Carrier")
plt.ylabel('Delay Incident')
plt.xlabel('Carrier')
#Set tick colors:
ax = plt.gca()
ax.tick_params(axis='x', colors='blue')
ax.tick_params(axis='y', colors='red')
#Plot the data:
my_colors = 'rgbkymc' #red, green, blue, black, etc.
pd.Series.plot(
s,
kind='bar',
color=my_colors,
)
plt.show()
시퀀스의 색상보다 막대가 더 많으면 색상이 반복됩니다.
Pandas 0.17.0 업데이트
최신 판다 버전에 대한 @ 7stud의 답변은 전화를 걸면됩니다.
s.plot(
kind='bar',
color=my_colors,
)
대신에
pd.Series.plot(
s,
kind='bar',
color=my_colors,
)
그래프 작성 기능은 시리즈의 회원이 될 한 DataFrame은 객체와 호출 사실 pd.Series.plot
로모그래퍼 color
인수에 오류가 있습니다
참고 URL : https://stackoverflow.com/questions/18973404/setting-different-bar-color-in-matplotlib-python
'Program Tip' 카테고리의 다른 글
int 변수를 double로 변환해야합니다. (0) | 2020.12.10 |
---|---|
Android SQLite 삽입 또는 업데이트 (0) | 2020.12.10 |
bash 스크립트에서 찾기 결과를 어떻게 처리 할 수 있습니까? (0) | 2020.12.10 |
Linux 명령 줄을 사용하여 HTML 이메일을 보내는 방법 (0) | 2020.12.10 |
iPhone 앱에서 UIButton / UILabel '패딩'을 달성하는 방법 (0) | 2020.12.10 |