재원's 블로그

bar graph1(막대그래프) 본문

Matplotlib

bar graph1(막대그래프)

KimJ.W 2023. 1. 21. 19:15

최초 작성일 : 2021-11-11
categories: Matplotlib


오늘은 '막대그래프'를 그리는걸 연습했다.

  import matplotlib.pyplot as plt  #또는 from matplotlib import pyplot as plt 로 쓸 수도 있다.

  years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
  gdp = [67.0, 80.0, 257.0, 1686.0, 6505, 11865.3, 22105.3] #1인당 국민소득
 
  plt.bar(range(len(years)), gdp)      #막대그래프 호출: bar(x, y) 
 
  plt.title("GDP per capita")          #차트 제목
  plt.ylabel('dollars')                #y축 라벨
 
  plt.xticks(range(len(years)), years) #x축에 틱을 붙임.
  plt.show()   #그래프를 보여준다.

m b1

위의 코드에서 처럼 맨 처음에 'matplotlib'를 import 해줘야만 '막대그래프'를
그릴 수 있다.

또한 막대그래프의 색깔을 바꾸고 싶으면

https://matplotlib.org/3.1.0/gallery/color/named_colors.html
사이트를 참고해서

넣고 싶은 색을 골라서 아래의 코드 처럼 'colors' 부분에 색 이름을 넣어주면
막대 그래프 색이 변하게 된다.

import matplotlib.pyplot as plt
#또는 from matplotlib import pyplot as plt 로 쓸 수도 있다.
import numpy as np

x = np.arange(3)  #arange 함수는 해당되는 숫자 미만의 수를 출력해준다.(예: '5'를 입력하면 '1,2,3,4'까지만 출력)
years = ['2018', '2019', '2020'] 
values = [100, 400, 900]
colors = ['y', 'dodgerblue', 'C2']  #막대그래프의 색깔이 변하게 해준다.

plt.bar(x, values, color=colors)  #막대그래프 호출: bar(x, y) 

plt.xticks(x, years)    #x축에 틱을 붙임.

plt.show()  #그래프를 보여준다.

m b2

또한 'import matplotlib.pyplot as plt'를 입력하지 않고
아래의 코드처럼 입력해도 'Matplotlib'에서는
bar chart(막대 그래프)를 그릴 수 있도록 'plt.bar()' 메서드를 제공
제공하기 때문에 에러를 띄우지 않고 그래프를 출력할 수 있다.

days_in_year = [88, 225, 365, 687, 4333, 10756, 30687, 60190, 90553]
plt.bar(range(len(days_in_year)), days_in_year)
plt.show()  #그래프를 보여준다.

아래의 코드는 'x-labels를 설정하기 전에 반드시 x-ticks를 설정해야 한다.'
라는 것을 보여주는 코드다.

ax = plt.subplot()  #여러개의 그래프를 그릴수 있게 해준다.

ax.set_xticks([0, 1, 2, 3, 4, 5, 6, 7, 8])

ax.set_xticklabels(['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto'], rotation=30) 
#x축의 모든 막대그래프 하나 하나의 이름을 따로 설정한다.

plt.xlabel('Planets')  #x축 전체의 이름을 설정한다.

plt.ylabel('Days in the Year')  #y축 전체의 이름을 설정한다.

plt.show()  #그래프를 보여준다.

m b3

import matplotlib.pyplot as plt

X1=[1,3,5,7]
data1 = [1,2,3,4]
plt.bar(X1, data1,color='r',width=0.5) #'width'를  '0.5'로 설정해서 그래프 사이 간격이 '0.5'만큼 벌어진다.

X2=[1+0.5,3+0.5,5+0.5,7+0.5]
data2 = [2,3,4,5]
plt.bar(X2, data2,color='g',width=0.5) #'width'를  '0.5'로 설정해서 그래프 사이 간격이 '0.5'만큼 벌어진다.

X3=[1+1,3+1,5+1,7+1]
data3 = [3,4,5,6]
plt.bar(X3, data3,color='b',width=0.5) #'width'를  '0.5'로 설정해서 그래프 사이 간격이 '0.5'만큼 벌어진다.

m b4

import matplotlib.pyplot as plt

X=['a','b','c','d']
height = [1,2,3,4]

plt.barh(X, height)  #'barh'는 bar horizontal 의 약어이다. 그렇기 때문에 그래프가 '가로'방향으로 그려진다.
plt.show()

m b5

import matplotlib.pyplot as plt

X=[1,3,5,7]
data = [1,2,3,4]
plt.bar(X, data,width=1.5) #위의 코드에서 등장했던 'width'함수의 또 다른 기능은 그래프간 간격과 함께 두께도 설정해주는 기능이다.
plt.show()

m b6

import matplotlib.pyplot as plt

X=[1,3,5,7]
data = [1,2,3,4]
plt.bar(X, data,color='y')
ticklabel=['a','b','c','d']
plt.xticks(X,ticklabel,fontsize=15,rotation=-30) #'rotation'을 입력하면 그래프에 설정된 각 각의 이름이 입력한 숫자만큼 기울여서 출력된다.

plt.show()

m b7

'Matplotlib' 카테고리의 다른 글

hitmap(히트맵) 그리기  (0) 2023.01.21
hiatogram & colormap 그리기  (0) 2023.01.21
treemap graph(트리맵 그래프)  (0) 2023.01.21
Pie graph(원 그래프)  (0) 2023.01.21
Scatter plot(산점도) 그리기  (0) 2023.01.20