Matplotlib는 Python의 가장 유명한 그리기 라이브러리로 matlab과 유사한 명령 API 세트를 제공하며 이는 대화형 그리기에 매우 적합합니다. 또한 그리기 컨트롤로 쉽게 사용하고 GUI 애플리케이션에 내장할 수도 있습니다. 문서는 매우 완벽하며 갤러리 페이지에는 수백 개의 썸네일이 있으며 모두 열면 소스 프로그램이 있습니다. 따라서 특정 유형의 다이어그램을 그려야 하는 경우 이 페이지에서 찾아보기/복사/붙여넣기만 하면 기본적으로 완료됩니다.
이 기사에서는 matplotlib를 사용하여 가장 간단한 막대를 복잡한 막대까지 단계별로 구성합니다. 가장 간단한 바는 무엇인가요? 다음 문장을 읽어보면 얼마나 간단한지 알 수 있습니다.
import matplotlib.pyplot as plt plt.bar(left = 0,height = 1) plt.show()
실행 효과:
네, 셋 그냥요. 한 문장, 내가 본 것 중 가장 간단한 그림 문장. 먼저 matplotlib.pyplot을 가져온 다음 bar 메서드를 직접 호출하고 마지막으로 show를 사용하여 이미지를 표시했습니다. bar의 두 매개변수에 대해 설명하겠습니다.
left: 열의 왼쪽 가장자리 위치입니다. 1을 지정하면 현재 열의 왼쪽 가장자리의 x 값은 1.0입니다.
height : 컬럼의 높이로, Y축 left의 값으로, 별도의 값(컬럼임)을 사용하는 것 외에 height를 다음과 같이 대체할 수도 있습니다. 튜플(여러 직사각형을 나타냄) 예를 들어 다음 예에서는import matplotlib.pyplot as plt plt.bar(left = (0,1),height = (1,0.5)) plt.show()
import matplotlib.pyplot as plt plt.bar(left = (0,1),height = (1,0.5),width = 0.35) plt.show()
import matplotlib.pyplot as plt plt.xlabel(u'性别') plt.ylabel(u'人数') plt.bar(left = (0,1),height = (1,0.5),width = 0.35) plt.show()
import matplotlib.pyplot as plt plt.xlabel(u'性别') plt.ylabel(u'人数') plt.xticks((0,1),(u'男',u'女')) plt.bar(left = (0,1),height = (1,0.5),width = 0.35) plt.show()
import matplotlib.pyplot as plt plt.xlabel(u'性别') plt.ylabel(u'人数') plt.xticks((0,1),(u'男',u'女')) plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center") plt.show()
plt.title(u"性别比例分析")
import matplotlib.pyplot as plt plt.xlabel(u'性别') plt.ylabel(u'人数') plt.title(u"性别比例分析") plt.xticks((0,1),(u'男',u'女')) rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center") plt.legend((rect,),(u"图例",)) plt.show()
def autolabel(rects): for rect in rects: height = rect.get_height() plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))
import matplotlib.pyplot as plt def autolabel(rects): for rect in rects: height = rect.get_height() plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height)) plt.xlabel(u'性别') plt.ylabel(u'人数') plt.title(u"性别比例分析") plt.xticks((0,1),(u'男',u'女')) rect = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center") plt.legend((rect,),(u"图例",)) autolabel(rect) plt.show()
direct = plt.bar(left = (0,1),height = (1,0.5),width = 0.35,align="center",yerr=0.000001 )