Python 그래 픽 라 이브 러 리 Matplotlib 입문 강좌
11672 단어 pythonmatplotlib
이것 은 Python 언어의 패키지 이기 때문에 기계 에 먼저 Python 언어 를 설치 하 는 환경 이 필요 합 니 다.이 점 에 대해 서 는 스스로 인터넷 에서 검색 하여 얻 는 방법 을 찾 아 보 세 요.
Matplotlib 를 설치 하 는 방법 에 대해 서 는 여 기 를 참조 하 십시오:Matplotlib Installing.
필 자 는 여러분 이 pip 의 방식 으로 설치 하 는 것 을 추천 합 니 다.구체 적 인 방법 은 다음 과 같 습 니 다.
sudo pip3 install matplotlib
본 논문 의 소스 코드 와 테스트 데 이 터 는 여기 서 얻 을 수 있다.matplotlib_tutorial본 논문 의 코드 예 시 는 다른 Python 라 이브 러 리 인 NumPy 을 사용 할 것 이다.독자 들 이 먼저 NumPy 에 대해 어느 정도 익숙 해 질 것 을 건의 합 니 다.저도 예전 에 NumPy 의 기초 강 좌 를 쓴 적 이 있 습 니 다.여 기 를 참조 하 십시오.Python 머 신 러 닝 라 이브 러 리 NumPy 튜 토리 얼.
본 논문 의 코드 는 다음 과 같은 환경 에서 테스트 합 니 다.
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:필요 하지 않 으 면 다음 캡 처 는 도형 바깥쪽 의 테 두 리 를 제거 하고 도형 주체 만 유지 합 니 다.
한 번 에 여러 개의 그림 그리 기
어떤 경우 에 우 리 는 한 번 에 여러 개의 도형 을 그 리 는 것 을 원할 수도 있다.예 를 들 어 두 그룹의 데이터 의 대비,또는 한 그룹의 데이터 의 서로 다른 전시 방식 등 이다.
다음 방법 으로 여러 개의 그림 을 만 들 수 있 습 니 다:
여러 figure
figure
이 바로 도형 창 이 라 고 간단하게 이해 할 수 있다.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, 1
은 211
,2, 1, 2
은 212
으로 쓸 수 있다.따라서 아래 코드 의 결 과 는 같다.
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 주 소 를 붙 였 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.