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

Python에서 여러 그래프를 결합하는 방법

<시간/>

소개

Matplotlib를 사용하면 동일한 그래프에 둘 이상의 플롯을 추가할 수 있습니다. 이 튜토리얼에서는 두 개의 다른 축에서 동일한 플롯으로 데이터를 표시하는 방법을 보여줍니다.

그것을 하는 방법..

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

import matplotlib.pyplot as plt

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
Years, IPhone_Sales, Galaxy_Sales, Pixel_Sales = zip(*units_sold)

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

# set the width
Width = 0.2

4. 첫 번째 서브플롯을 생성합니다.

plt.subplot(2, 1, 1)
<matplotlib.axes._subplots.AxesSubplot at 0x214185d4e50>

Python에서 여러 그래프를 결합하는 방법

5.IPhone_Sales에 대한 정보가 포함된 막대 그래프를 만듭니다.

Iphone = plt.bar(Position, IPhone_Sales,color='green')
plt.ylabel('IPhone Sales')
plt.xticks(Position, Years)


([<matplotlib.axis.XTick at 0x214186115e0>,
<matplotlib.axis.XTick at 0x21418611580>,
<matplotlib.axis.XTick at 0x2141861fc40>,
<matplotlib.axis.XTick at 0x21418654e20>,
<matplotlib.axis.XTick at 0x2141865f370>],
[Text(0, 0, '2016'),
Text(0, 0, '2017'),
Text(0, 0, '2018'),
Text(0, 0, '2019'),
Text(0, 0, '2020')])

Python에서 여러 그래프를 결합하는 방법

6.이제 Samsung Galaxy 판매에 대한 정보를 추가하기 위해 다른 y축을 만듭니다.

plt.twinx()
Galaxy = plt.plot(Position, Galaxy_Sales, 'o-', color='blue')
plt.ylabel('Galaxy Sales')
plt.xticks(Position, Years)


([<matplotlib.axis.XTick at 0x214186b4c40>,
<matplotlib.axis.XTick at 0x214186b4c10>,
<matplotlib.axis.XTick at 0x21418682ac0>,
<matplotlib.axis.XTick at 0x214186dd8e0>,
<matplotlib.axis.XTick at 0x214186dddf0>],
[Text(0, 0, '2016'),
Text(0, 0, '2017'),
Text(0, 0, '2018'),
Text(0, 0, '2019'),
Text(0, 0, '2020')])

Python에서 여러 그래프를 결합하는 방법

7. 이제 최종 Google Pixel 판매를 플롯합니다.

plt.subplot(2, 1, 2)
plt.plot(Position, Pixel_Sales, color='yellow')
plt.gca().set_ylim(ymin=0)
plt.xticks(Position, Years)


([<matplotlib.axis.XTick at 0x2141870f9a0>,
<matplotlib.axis.XTick at 0x2141870f580>,
<matplotlib.axis.XTick at 0x2141870a730>,
<matplotlib.axis.XTick at 0x2141873c9d0>,
<matplotlib.axis.XTick at 0x2141873cee0>],
[Text(0, 0, '2016'),
Text(0, 0, '2017'),
Text(0, 0, '2018'),
Text(0, 0, '2019'),
Text(0, 0, '2020')])


Python에서 여러 그래프를 결합하는 방법

plt.show()

예시

8.다 모아서 차트에 저장합니다.

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
Years, IPhone_Sales, Galaxy_Sales, Pixel_Sales = zip(*units_sold)

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

# set the width
Width = 0.2

plt.subplot(2, 1, 1)
Iphone = plt.bar(Position, IPhone_Sales,color='green')
plt.ylabel('IPhone Sales')
plt.xticks(Position, Years)

plt.twinx()
Galaxy = plt.plot(Position, Galaxy_Sales, 'o-', color='blue')
plt.ylabel('Galaxy Sales')
plt.xticks(Position, Years)

plt.subplot(2, 1, 2)
plt.plot(Position, Pixel_Sales, color='yellow')
plt.ylabel('Pixel Sales')
plt.gca().set_ylim(ymin=0)
plt.xticks(Position, Years)

# plt.show()
plt.savefig('CombiningGraphs.png', dpi=72)


Python에서 여러 그래프를 결합하는 방법