이 글에서는 선 그리기 기능을 구현하기 위해 pylab 라이브러리를 사용하는 Python의 방법을 주로 소개합니다. 선 그리기 기능을 구현하기 위해 pylab 라이브러리의 관련 기능을 사용하여 Python의 작동 기술을 분석하고 구체적인 예도 설명합니다. 관련 함수와 매개변수 함수가 필요합니다. 친구가 참고할 수 있습니다.
이 문서에서는 Python이 pylab 라이브러리를 사용하여 선 그리기 기능을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
pylab은 비교적 강력한 그리기 기능을 제공하지만 기능과 매개변수가 많아 혼동하기 쉽습니다. 우리가 일반적으로 가장 많이 사용하는 것은 선 그리기입니다. 아래에서는 일반적으로 사용되는 선 그리기 기능 중 일부를 쉽게 사용할 수 있도록 간단히 캡슐화했습니다.
# -*- coding: utf-8 -*- import pylab import random class MiniPlotTool : ''' A mini tool to draw lines using pylab ''' basecolors = ['red','green','yellow','blue','black','cyan','magenta'] def __init__(self, baseConfig) : self.figsize = baseConfig.get('figsize',None) self.axis = baseConfig.get('axis',None) self.title = baseConfig.get('title','NoName') self.ylabel = baseConfig.get('ylabel','NoName') self.grid = baseConfig.get('grid',False) self.xaxis_locator = baseConfig.get('xaxis_locator',None) self.yaxis_locator = baseConfig.get('yaxis_locator',None) self.legend_loc = baseConfig.get('legend_loc',0) if self.figsize != None : pylab.figure(figsize = self.figsize) if self.axis != None : pylab.axis(self.axis) pylab.title(self.title) pylab.ylabel(self.ylabel) ax = pylab.gca() pylab.grid(self.grid) if self.xaxis_locator != None : ax.xaxis.set_major_locator( pylab.MultipleLocator(self.xaxis_locator) ) if self.yaxis_locator != None : ax.yaxis.set_major_locator( pylab.MultipleLocator(self.yaxis_locator) ) self.lineList = [] self.id = 1 def addline(self, lineConf) : self.lineList.append((self.id, lineConf)) self.id += 1 return {'id' : self.id - 1} def removeline(self, lineId) : for i in range(len(self.lineList)) : id, conf = self.lineList[i] if id == lineId : del self.lineList[i] break else : return {'status' : -1} print len(self.lineList) return {'status' : 0} def __parselineConf(self, lineConf) : X = lineConf['X'] Y = lineConf['Y'] marker = lineConf.get('marker',None) color = lineConf.get('color', random.choice(MiniPlotTool.basecolors)) markerfacecolor = lineConf.get('markerfacecolor',color) label = lineConf.get('label','NoName') linewidth = lineConf.get('linewidth',1) linestyle = lineConf.get('linestyle','-') return X, Y, marker, color, markerfacecolor, label, linewidth, linestyle def plotSingleLine(self, lineConf): X, Y, marker, color, markerfacecolor, label, linewidth, linestyle = self.__parselineConf(lineConf) pylab.plot(X, Y, marker = marker, color = color, markerfacecolor = markerfacecolor, label=label, linewidth = linewidth, linestyle = linestyle) pylab.legend(loc = self.legend_loc) def plot(self) : colors = [MiniPlotTool.basecolors[i % len(MiniPlotTool.basecolors)] for i in range(len(self.lineList))] for i in range(len(self.lineList)) : id, conf = self.lineList[i] if conf.get('color',None) : conf['color'] = colors[i] X, Y, marker, color, markerfacecolor, label, linewidth, linestyle = self.__parselineConf(conf) pylab.plot(X, Y, marker = marker, color = color, markerfacecolor = markerfacecolor, label=label, linewidth = linewidth, linestyle = linestyle) pylab.legend(loc = self.legend_loc) def show(self) : pylab.show() if __name__ == '__main__' : #test baseConfig = { #'figsize' : (6,8), #'axis': [0,10,0,10], #'title' : 'hello title', #'ylabel' : 'hello ylabel', 'grid' : True, #'xaxis_locator' : 0.5, #'yaxis_locator' : 1, #'legend_loc' : 'upper right' } tool = MiniPlotTool(baseConfig) X = [ i for i in range(10)] Y = [random.randint(1,10) for i in range(10)] Y2 = [random.randint(1,10) for i in range(10)] lineConf = { 'X' : X, 'Y' : Y #'marker' : 'x', #'color' : 'b', #'markerfacecolor' : 'r', #'label' : '222', #'linewidth' : 3, #'linestyle' : '--' } lineConf2 = { 'X' : X, 'Y' : Y2, 'marker' : 'o', 'color' : 'b', 'markerfacecolor' : 'r', 'label' : '222', 'linewidth' : 3, 'linestyle' : '--' } #tool.plotSingleLine(lineConf) print tool.addline(lineConf) print tool.addline(lineConf2) #print tool.removeline(1) tool.plot() tool.show()
런닝 효과 다이어그램은 다음과 같습니다.
첨부 파일: 인용 출처: https://sites.google.com/site/guyingbo/matplotlib%E5%AD%A6%E4% B9%A0 %E7%AC%94%E8%AE%B0
라인 속성:
색상(c로 축약되는 색상):
파란색: 'b'(파란색)
녹색: 'g'(녹색)
빨간색: 'r'(빨간색)
청록색(짙은 녹색): 'c'(청록색)
빨간색 보라색(마젠타색): 'm'(마젠타색)
노란색: 'y'(노란색)
검정색: 'k'( 검정색 )
흰색: 'w'(흰색)
회색조 표현: 예: 0.75([0,1] 내의 모든 부동 소수점 숫자)
RGB 표현: 예: '#2F4F4F' 또는 (0.18, 0.31, 0.31)
모든 합법적인 색상 HTML로 표현: 예: 'red', 'darkslategray'
선 스타일(linestyle 축약형: ls):
실선: '-'
점선: '--'
점선: '-.'
점선: ':'
점: '.'
점 유형(마커):
Pixel: ','
원: 'o'
위쪽 삼각형: '^'
아래쪽 삼각형: 'v'
왼쪽 삼각형: 'ea580ba0e936798e7633c5687671d366'
사각형: 's'
더하기 기호: '+'
포크: 'x'
기둥형: 'D'
얇은 프리즘: 'd'
삼각대 아래쪽: '1'(즉丫)
삼각대 위 방향: '2'
삼각대 왼쪽 방향: '3'
삼각대 오른쪽 방향: '4'
육각형: 'h'
회전된 육각형: 'H'
오각형: 'p'
세로선: ' |'
수평선: '_'
gnuplot의 단계: 'steps'(kwarg에서만 사용할 수 있음)
마커 크기(ms로 축약되는 markersize):
markersize: 실수
마커 가장자리 너비(markeredgewidth, 축약형: ms) mew):
markeredgewidth: 실수
마커 가장자리 색상(markeredgecolor, mec로 축약됨):
markeredgecolor: 색상 옵션의 모든 값
마커 표면 색상(markerfacecolor, mfc로 축약됨):
markerfacecolor: 다음의 모든 값 색상 옵션
투명도(알파):
alpha: [0,1] 사이 부동 소수점
Linewidth(linewidth):
linewidth: 실수
위 내용은 pylab 라이브러리를 기반으로 한 Python의 선 그리기 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!