Python 그래 픽 라 이브 러 리 Matplotlib 입문 강좌

11672 단어 pythonmatplotlib
운행 환경
이것 은 Python 언어의 패키지 이기 때문에 기계 에 먼저 Python 언어 를 설치 하 는 환경 이 필요 합 니 다.이 점 에 대해 서 는 스스로 인터넷 에서 검색 하여 얻 는 방법 을 찾 아 보 세 요.
Matplotlib 를 설치 하 는 방법 에 대해 서 는 여 기 를 참조 하 십시오:Matplotlib Installing.
필 자 는 여러분 이 pip 의 방식 으로 설치 하 는 것 을 추천 합 니 다.구체 적 인 방법 은 다음 과 같 습 니 다.

sudo pip3 install matplotlib
본 논문 의 소스 코드 와 테스트 데 이 터 는 여기 서 얻 을 수 있다.matplotlib_tutorial
본 논문 의 코드 예 시 는 다른 Python 라 이브 러 리 인 NumPy 을 사용 할 것 이다.독자 들 이 먼저 NumPy 에 대해 어느 정도 익숙 해 질 것 을 건의 합 니 다.저도 예전 에 NumPy 의 기초 강 좌 를 쓴 적 이 있 습 니 다.여 기 를 참조 하 십시오.Python 머 신 러 닝 라 이브 러 리 NumPy 튜 토리 얼.
본 논문 의 코드 는 다음 과 같은 환경 에서 테스트 합 니 다.
  • Apple OS X 10.13
  • Python 3.6.3 matplotlib 2.1.1
  • numpy 1.13.3
  • 소개 하 다.
    Matplotlib 는 다음 과 같은 다양한 환경 에 적 용 됩 니 다.
  • Python 스 크 립 트
  • IPython shell Jupyter notebook
  • 웹 응용 서버
  • 사용자 그래 픽 인터페이스 공구 꾸러미
  • Matplotlib 를 사용 하면 직사 도,스펙트럼 도,막대 그래프,산 점도 등 다양한 종류의 그림 을 쉽게 생 성 할 수 있 습 니 다.그리고 맞 춤 형 제작 을 쉽게 실현 할 수 있다.
    입문 코드 예시
    다음은 가장 간단 한 코드 예 시 를 살 펴 보고 Matplotlib 가 어떤 것 인지 느껴 보 겠 습 니 다.
    
    # test.py
    import matplotlib.pyplot as plt
    import numpy as np
    data = np.arange(100, 201)
    plt.plot(data)
    plt.show()
    이 코드 의 주체 논 리 는 세 줄 에 불과 하지만 매우 직관 적 인 선형 도 를 그 렸 다.다음 과 같다.

    이 선형 도 를 대조 하여 우 리 는 세 줄 코드 의 논 리 를 설명 합 니 다.
  • np.arange(100, 201) 을 통 해[100,200]사이 의 정수 배열 을 만 들 었 는데 그 수 치 는[100,101,102,...,200]
  • 이다.
  • matplotlib.pyplot 을 통 해 그 려 냈 다.분명히 그 려 진 값 은 그림 의 세로 좌표(y 축)에 대응 합 니 다.그리고 matplotlib 자체 가 우리 에 게 도형 의 가로 좌표(x 축)를 설정 했다.[0,100]우 리 는 마침 100 개의 수치 가
  • 이기 때문이다.
  • plt.show() 을 통 해 이 도형 을
  • 으로 나 타 냈 다.
    이 코드 는 매우 간단 해서 운행 하기에 도 마찬가지다.만약 에 본 논문 의 운영 환경 이 있다 면 위의 코드 를 텍스트 파일 에 저장 하거나 Github 을 통 해 본 논문 의 소스 코드 를 얻 은 다음 에 아래 의 명령 을 통 해 자신의 컴퓨터 에서 위의 도형 을 볼 수 있 습 니 다.
    
    python3 test.py
    주 1:뒤의 튜 토리 얼 에서 우 리 는 그림 의 모든 세부 사항 을 어떻게 맞 추 는 지 점차적으로 설명 할 것 이다.예 를 들 어 좌표 축,도형,착색,라인 스타일 등 이다.
    주 2:필요 하지 않 으 면 다음 캡 처 는 도형 바깥쪽 의 테 두 리 를 제거 하고 도형 주체 만 유지 합 니 다.
    한 번 에 여러 개의 그림 그리 기
    어떤 경우 에 우 리 는 한 번 에 여러 개의 도형 을 그 리 는 것 을 원할 수도 있다.예 를 들 어 두 그룹의 데이터 의 대비,또는 한 그룹의 데이터 의 서로 다른 전시 방식 등 이다.
    다음 방법 으로 여러 개의 그림 을 만 들 수 있 습 니 다:
    여러 figurefigure 이 바로 도형 창 이 라 고 간단하게 이해 할 수 있다.matplotlib.pyplot 은 기본 적 인 figure 이 있 고 우 리 는 plt.figure() 을 통 해 더 많은 개 를 만 들 수 있 습 니 다.아래 코드 와 같이:
    
    # figure.py
    import matplotlib.pyplot as plt
    import numpy as np
    data = np.arange(100, 201)
    plt.plot(data)
    data2 = np.arange(200, 301)
    plt.figure()
    plt.plot(data2)
    plt.show()
    이 코드 는 두 창의 도형 을 그 렸 습 니 다.각각 다른 구간 의 선형 그림 입 니 다.다음 과 같 습 니 다.

    주:초기 상태 이 두 창 은 완전히 겹 칩 니 다.
    다 중 subplot
    어떤 경우 에는 같은 창 에 여러 개의 그림 을 표시 하고 싶 습 니 다.이 때 는 여러 개의 subplot 를 사용 할 수 있 습 니 다.다음은 코드 예제 입 니 다.
    
    # subplot.py
    import matplotlib.pyplot as plt
    import numpy as np
    data = np.arange(100, 201)
    plt.subplot(2, 1, 1)
    plt.plot(data)
    data2 = np.arange(200, 301)
    plt.subplot(2, 1, 2)
    plt.plot(data2)
    plt.show()
    이 코드 에서 subplot 함 수 를 제외 하고 모두 우리 가 익숙 한 내용 이다.subplot 함수 의 앞의 두 매개 변 수 는 subplot 수량 을 지정 했다.즉,행렬 의 형식 으로 현재 도형 을 분할 하고 두 정 수 는 행렬 의 줄 수 와 열 수 를 각각 지정 했다.세 번 째 매개 변 수 는 행렬 의 색인 을 말한다.
    따라서 다음 줄 코드 는 2 줄 1 열 subplot 의 첫 번 째 subplot 를 말 합 니 다.
    
    plt.subplot(2, 1, 1)
    다음 줄 코드 는 2 줄 1 열 subplot 의 두 번 째 subplot 를 말 합 니 다.
    
    plt.subplot(2, 1, 2)
    그래서 이 코드 의 결 과 는 다음 과 같다.
    subplot 함수 의 매개 변 수 는 위의 이런 형식 을 지원 할 뿐만 아니 라 세 개의 정수(10 안의)를 하나의 정수 로 합 칠 수 있다.예 를 들 어 2, 1, 1211,2, 1, 2212 으로 쓸 수 있다.
    따라서 아래 코드 의 결 과 는 같다.
    
    import matplotlib.pyplot as plt
    import numpy as np
    data = np.arange(100, 201)
    plt.subplot(211)
    plt.plot(data)
    data2 = np.arange(200, 301)
    plt.subplot(212)
    plt.plot(data2)
    plt.show()
    subplot 함수 에 대한 상세 한 설명 은 여기 참조:matplotlib.pyplot.subplot
    상용 도형 예시
    Matplotlib 는 놀 랄 정도 로 많은 도형 을 만 들 수 있 습 니 다.여기 서 느 낄 수 있 습 니 다:Matplotlib Gallery.
    본 고 는 첫 번 째 입문 강좌 로 서 우 리 는 먼저 가장 자주 사용 하 는 도형 의 그리 기 를 살 펴 보 자.
    선형 도
    앞의 예 에서 선형 그림 의 횡축 점 은 모두 자동 으로 생 성 되 고 우 리 는 주동 적 으로 그것 을 설정 하고 싶 을 것 이다.또한 라인 도 맞 춤 형 제작 을 원 할 수 있 습 니 다.아래 의 이 예 를 보 세 요.
    
    # plot.py
    import matplotlib.pyplot as plt
    plt.plot([1, 2, 3], [3, 6, 9], '-r')
    plt.plot([1, 2, 3], [2, 4, 9], ':g')
    plt.show()
    이 코드 는 우리 로 하여 금 이러한 도형 을 얻 게 할 수 있다.

    이 코드 는 다음 과 같다.plot 함수 의 첫 번 째 배열 은 횡축 의 값 이 고 두 번 째 배열 은 종축 의 값 이기 때문에 하 나 는 직선 이 고 하 나 는 접 는 선 이다.마지막 매개 변 수 는 두 글자 로 구성 되 어 있 으 며,각각 선의 스타일 과 색상 입 니 다.전 자 는 빨간색 의 직선 이 고 후 자 는 녹색의 점선 이다.스타일 과 색상 에 대한 설명 은 plot 함수 의 API Doc:matplotlib.pyplot.plot 을 참조 하 십시오.
    산포도scatter 함 수 는 산 점 도 를 그 리 는 데 쓰 인 다.마찬가지 로 이 함수 도 두 그룹의 짝 을 이 룬 데이터 가 x 와 y 축의 좌 표를 지정 해 야 한다.다음은 코드 예제 입 니 다.
    
    # scatter.py
    import matplotlib.pyplot as plt
    import numpy as np
    N = 20
    plt.scatter(np.random.rand(N) * 100,
       np.random.rand(N) * 100,
       c='r', s=100, alpha=0.5)
    plt.scatter(np.random.rand(N) * 100,
       np.random.rand(N) * 100,
       c='g', s=200, alpha=0.5)
    plt.scatter(np.random.rand(N) * 100,
       np.random.rand(N) * 100,
       c='b', s=300, alpha=0.5)
    plt.show()
    이 코드 는 다음 과 같다.
    이 그림 은 세 조 의 데 이 터 를 포함 하고 각 조 의 데 이 터 는 20 개의 무 작위 좌표 의 위치 매개 변수 c 표시 점 의 색 을 포함 하 며 s 은 점 의 크기 이 고 alpha 은 투명도 이다.
    이 코드 가 그린 그림 은 다음 과 같다.
    scatter 함수 에 대한 상세 한 설명 은 여기 참조:matplotlib.pyplot.scatter
    떡 모양 도pie 함 수 는 떡 모양 의 그림 을 그 리 는 데 쓰 인 다.떡 모양 의 그림 은 보통 집합 중의 각 부분의 백분율 을 표현 하 는 데 쓰 인 다.
    
    # pie.py
    import matplotlib.pyplot as plt
    import numpy as np
    labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    data = np.random.rand(7) * 100
    plt.pie(data, labels=labels, autopct='%1.1f%%')
    plt.axis('equal')
    plt.legend()
    plt.show()
    이 코드 는 다음 과 같다.data 은 7 개의 데 이 터 를 포함 하 는 랜 덤 수치 그림 의 라벨 로 labels 을 통 해 autopct 이 지정 한 수치의 정밀도 형식 plt.axis('equal') 을 지정 합 니 다.좌표 축 크기 가 일치 하 는 plt.legend() 은 그림 을 그 릴 것 을 가리 키 고 있 습 니 다.(아래 그림 의 오른쪽 상단 참조)
    이 코드 출력의 도형 은 다음 과 같다.
    pie 함수 에 대한 상세 한 설명 은 여기 참조:matplotlib.pyplot.pie
    막대 그래프bar 함 수 는 막대 그래프 를 그 리 는 데 쓰 인 다.막대 그래프 는 항상 한 조 의 데이터 비교 상황 을 묘사 하 는데 예 를 들 어 일주일 7 일,매일 도시 의 차량 흐름 이다.
    다음은 코드 예제 입 니 다.
    
    # bar.py
    import matplotlib.pyplot as plt
    import numpy as np
    N = 7
    x = np.arange(N)
    data = np.random.randint(low=0, high=100, size=N)
    colors = np.random.rand(N * 3).reshape(N, -1)
    labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    plt.title("Weekday Data")
    plt.bar(x, data, alpha=0.8, color=colors, tick_label=labels)
    plt.show()
    이 코드 는 다음 과 같다.
    이 그림 은 7 개의 무 작위 수 치 를 포함 하 는 결 과 를 보 여 준다.각 수 치 는[0,100]의 무 작위 수 이 고 그들의 색깔 도 무 작위 수 를 통 해 생 성 된다.np.random.rand(N * 3).reshape(N, -1) 은 선생 이 21(N x 3)개의 무 작위 수 를 만 든 다음 에 그것들 을 7 줄 로 조립 하면 줄 마다 세 개의 수 를 나타 낸다.이것 은 색깔 의 세 가지 구성 부분 에 대응한다.이 코드 를 이해 하지 못 하면 Python 머 신 러 닝 라 이브 러 리 NumPy 튜 토리 얼 title 에서 도형 의 제목 을 지 정 했 고 labels 에서 라벨 을 지 정 했 으 며 alpha 은 투명도 입 니 다.
    이 코드 출력의 도형 은 다음 과 같다.
    bar 함수 에 대한 상세 한 설명 은 여기 참조:matplotlib.pyplot.bar
    직사 도hist 함 수 는 직사 도 를 그 리 는 데 쓰 인 다.직사 도 는 보기에 막대 그래프 와 약간 유사 하 다.그러나 이들 의 의 미 는 다르다.직사 도 는 데이터 의 특정한 범위 에서 데이터 가 나타 나 는 빈 도 를 묘사 했다.이렇게 말 하면 약간 추상 적 이다.우 리 는 코드 예 시 를 통 해 설명 하면 이해 하기 쉽다.
    
    # hist.py
    import matplotlib.pyplot as plt
    import numpy as np
    data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
    labels = ['3K', '4K', '5K']
    bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]
    plt.hist(data, bins=bins, label=labels)
    plt.legend()
    plt.show()
    위의 이 코드 에서 [np.random.randint(0, n, n) for n in [3000, 4000, 5000]] 은 세 개의 배열 을 포함 하 는 배열 을 만 들 었 습 니 다.그 중에서:
    첫 번 째 배열 은 3000 개의 랜 덤 수 를 포함 하 는데 이런 랜 덤 수의 범 위 는[0,3000)이 고 두 번 째 배열 은 4000 개의 랜 덤 수 를 포함한다.이런 랜 덤 수의 범 위 는[0,4000)세 번 째 배열 은 5000 개의 랜 덤 수 를 포함 하 는데 이런 랜 덤 수의 범 위 는[0,5000)이다.
    bins 배열 은 우리 가 표시 하 는 직사 도 의 경 계 를 지정 하 는 데 사 용 됩 니 다.즉,[0,100)데이터 점 이 있 을 것 입 니 다.[100,500)데이터 점 이 있 을 것 입 니 다.그래서 최종 결 과 는 모두 7 개의 데이터 점 이 표 시 됩 니 다.마찬가지 로 우 리 는 태그 와 그림 예 를 지정 했다.
    이 코드 의 출력 은 다음 그림 과 같다.

    이 그림 에서 우 리 는 세 조 의 데이터 가 3000 이하 에 모두 데이터 가 있 고 빈도 가 많 지 않다 는 것 을 보 았 다.그러나 파란색 줄 은 3000 이하,주황색 줄 은 4000 이하 에 불과 하 다.이것 은 우리 의 랜 덤 배열 데이터 와 딱 부합된다.hist 함수 에 대한 상세 한 설명 은 여기 참조:matplotlib.pyplot.hist
    종결 어
    본 고 를 통 해 우 리 는 Matplotlib 의 대체적인 사용 방법 과 몇 가지 가장 기본 적 인 도형 그리 기 방식 을 알 게 되 었 다.
    설명 이 필요 한 것 은 입문 과정 이기 때문에 본 고 에서 우 리 는 이런 함수 와 도형 의 가장 기본 적 인 사용 방법 만 제시 했다.하지만 이들 의 기능 은 단순 한 것 이 아니다.따라서 본 고 에서 우 리 는 독자 들 이 더욱 연구 할 수 있 도록 이러한 함수 의 API 주 소 를 붙 였 다.

    좋은 웹페이지 즐겨찾기