더북(TheBook)

NOTE 막대그래프를 그리는 다른 방법

여기서는 2개의 막대그래프를 항아리 모양으로 구성했지만, 다른 방식으로도 표현할 수 있습니다. 다음 그림을 봅시다.

▲ 그림 8-13 막대그래프를 겹쳐 그리는 방법

첫 번째 방법은 한 그래프 안에서 2개의 막대그래프를 좌우로 분리해 나란히 그리는 것입니다. 앞의 결과 그래프와 비교했을 때 x축이 다르다는 점이 보이나요? 가장 왼쪽의 A가 숫자 1의 위치라고 가정한다면 다음과 같이 정리할 수 있습니다.

 

분홍색 그래프의 x축은 1부터 5까지, 파란색 그래프의 x축은 7부터 11까지 표현되도록 코드를 변경해야 합니다. 그리고 x축의 숫자를 오디션 프로그램 참가자 이름으로 바꿔야죠. 이럴 때는 plt.xticks()를 사용합니다. plt.xticks()는 그래프에 표시되는 x축의 눈금 위치와 라벨을 지정하며, plt.xticks(눈금 위치, 눈금 라벨) 형식으로 작성하면 됩니다. 참고로, 틱(tick)은 그래프에 표시하는 눈금을 의미합니다. 코드는 다음과 같습니다.

plt.bar(range(1, 6), week1, label='첫째 주', color='hotpink')
plt.bar(range(7, 12), week2, label='둘째 주', color='royalblue')
plt.xticks(range(1, 12), ['A', 'B', 'C', 'D', 'E', ' ', 'A', 'B', 'C', 'D', 'E'])

분홍색 그래프의 x축 눈금은 1부터 5까지 연속된 숫자이므로 range()를 사용해 range(1, 6)으로 범위를 나타낼 수 있습니다. 파란색 그래프는 x축 역시 7부터 11까지 연속된 숫자이므로 range(7, 12)로 작성할 수 있습니다. x축 눈금 라벨은 1부터 11까지 표시해야 하니 눈금 위치를 range(7, 12)로 잡습니다. 그리고 원하는 라벨을 뒤에 넣습니다. 눈금 위치를 잘 따진 후, 눈금 라벨을 변경해 주면 그래프가 잘 그려집니다. 같은 형식으로 plt.yticks()를 사용하면 y축 라벨도 지정할 수 있습니다.

그림 8-13의 두 번째 그래프도 그려 봅시다. 이 역시 x축을 조정하면 됩니다.

 

분홍색 그래프와 파란색 그래프가 번갈아가며 나옵니다. 간격이 둘 다 3입니다. 분홍색 그래프의 x축 눈금은 1, 4, 7, 10, 13이므로 range(시작 숫자, 종료 숫자, 간격) 형식을 사용해 range(1, 14, 3)으로 작성할 수 있습니다. 파란색 그래프는 x축 눈금이 2, 5, 8, 11, 14이므로 range(2, 15, 3)으로 작성할 수 있습니다. 그리고 plt.xticks()를 사용해 눈금 위치와 라벨을 넣습니다. 눈금이 분홍색 그래프 위치인 1, 4, 7, 10, 13에 표시되므로 range(1, 14, 3)으로 위치를 넣습니다. 눈금 라벨은 참가자 이름을 넣으면 되므로 singer 리스트를 넣습니다.

코드는 다음과 같습니다.

plt.bar(range(1, 14, 3), week1, label='첫째 주', color='hotpink') 
plt.bar(range(2, 15, 3), week2, label='둘째 주', color='royalblue') 
plt.xticks(range(1, 14, 3), singer)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.