Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 차트에 범례를 추가하는 방법은 무엇입니까?

<시간/>

소개...

차트의 주요 목적은 데이터를 쉽게 이해할 수 있도록 하는 것입니다. "그림은 천 마디 말의 가치가 있다"는 말로 표현할 수 없는 복잡한 생각을 하나의 이미지/차트로 전달할 수 있다는 의미입니다.

많은 정보가 포함된 그래프를 그릴 때 범례는 제공된 데이터의 이해를 돕기 위해 관련 정보를 표시하는 것이 좋습니다.

그것을 하는 방법..

matplotlib에서 범례는 여러 가지 방법으로 표시될 수 있습니다. 특정 지점에 주의를 환기시키는 주석은 독자가 그래프에 표시된 정보를 이해하는 데 도움이 됩니다.

1. python 명령 프롬프트를 열고 pip install matplotlib를 실행하여 matplotlib를 설치합니다.

2.표시할 데이터를 준비합니다.

예시

import matplotlib.pyplot as plt

# data prep (I made up data no accuracy in these stats)
mobile = ['Iphone','Galaxy','Pixel']

# Data for the mobile units sold for 4 Quaters in Million
units_sold = (('2016',12,8,6),
('2017',14,10,7),
('2018',16,12,8),
('2019',18,14,10),
('2020',20,16,5),)

3. 데이터를 각 회사의 모바일 장치에 대한 배열로 분할합니다.

예시

# data prep - splitting the data
IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold]
Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold]
Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold]

# data prep - Labels
Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold]

# set the position
Position = list(range(len(units_sold)))

# set the width
Width = 0.2

4. 준비된 데이터로 막대 그래프 만들기. 각 제품 판매는 .bar를 호출하여 위치와 판매를 지정합니다.

주석은 xy 및 xytext 속성을 사용하여 추가됩니다. 데이터를 보면 Google Pixel 모바일 판매가 2019년에 1,000만 대에서 2022년에는 500만대로 50% 감소했습니다. 따라서 텍스트와 주석을 마지막 막대 밖으로 설정하겠습니다.

마지막으로 범례 매개변수를 사용하여 범례를 추가합니다. 기본적으로 matplotlib는 데이터가 가장 적게 겹치는 영역에 범례를 그립니다.

예시

plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green')
plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue')
plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow')

# Set X-axis as years
plt.xticks(Position, Years)

# Set the Y axis label
plt.xlabel('Yearly Sales')
plt.ylabel('Unit Sales In Millions')

# Set the annotation Use the xy and xytext to change the arrow
plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12),
horizontalalignment='center',
arrowprops=dict(facecolor='red', shrink=0.05))

# Set the legent
plt.legend(mobile, title='Manufacturers')

출력

<matplotlib.legend.Legend at 0x19826618400>

Python에서 차트에 범례를 추가하는 방법은 무엇입니까?

  • 차트 내부에 범례를 추가하는 것이 시끄럽다면 bbox_to_anchor 옵션을 사용하여 외부에 범례를 그릴 수 있습니다. bbox_to_anchor에는 (X, Y) 위치가 있습니다. 여기서 0은 그래프의 왼쪽 하단 모서리이고 1은 오른쪽 상단 모서리입니다.

참고: - .subplots_adjust를 사용하여 그래프가 시작하고 끝나는 범례를 조정합니다.

예를 들어 right=0.50 값은 플롯의 오른쪽에 화면의 50%를 남겨둔다는 의미입니다. 왼쪽의 기본값은 0.125로 왼쪽 공간의 12.5%를 남깁니다.

출력

plt.legend(mobile, title='Manufacturers', bbox_to_anchor=(1, 0.8))
plt.subplots_adjust(right=1.2)

Python에서 차트에 범례를 추가하는 방법은 무엇입니까?

예시

6.마지막으로 피규어를 저장합니다.

import matplotlib.pyplot as plt

# data prep (I made up data no accuracy in these stats)
mobile = ['Iphone','Galaxy','Pixel']

# Data for the mobile units sold for 4 Quaters in Million
units_sold = (('2016',12,8,6),
('2017',14,10,7),
('2018',16,12,8),
('2019',18,14,10),
('2020',20,16,5),)

# data prep - splitting the data
IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold]
Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold]
Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold]

# data prep - Labels
Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold]

# set the position
Position = list(range(len(units_sold)))

# set the width
Width = 0.2

plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green')
plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue')
plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow')

# Set X-axis as years
plt.xticks(Position, Years)

# Set the Y axis label
plt.xlabel('Yearly Sales')
plt.ylabel('Unit Sales In Millions')

# Set the annotation Use the xy and xytext to change the arrow
plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12),
horizontalalignment='center',
arrowprops=dict(facecolor='red', shrink=0.05))

# Set the legent
plt.legend(mobile, title='Manufacturers')

plt.legend(mobile, title='Manufacturers')
plt.subplots_adjust(right=1.2)

# plt.show()
plt.savefig('MobileSales.png')

Python에서 차트에 범례를 추가하는 방법은 무엇입니까?