This article mainly introduces the method of Python using the pylab library to realize the line drawing function. It analyzes the operation skills of Python using the relevant functions of the pylab library to realize the line drawing function based on specific examples, and also explains the related functions and parameter functions. Friends in need can refer to
. This article describes how to use the pylab library to implement the line drawing function in Python. Share it with everyone for your reference, the details are as follows:
pylab provides a relatively powerful drawing function, but there are many functions and parameters, and it is easy to get confused. What we usually use most is line drawing. Below, some commonly used line drawing functions are simply encapsulated for easy use.
# -*- 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()
The operation effect diagram is as follows:
Attachment: Quoted from: https:/ /sites.google.com/site/guyingbo/matplotlib%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0
Line attributes:
Color (abbreviated as c):
Blue: 'b' (blue)
Green: 'g' (green)
Red: 'r' (red)
blue Green (dark green): 'c' (cyan)
Red purple (magenta): 'm' (magenta)
Yellow: 'y' (yellow)
Black: 'k' (black)
White: 'w' (white)
Grayscale representation: e.g. 0.75 (any floating point number within [0,1])
RGB representation: e.g. '#2F4F4F' or (0.18, 0.31, 0.31)
Any legal color representation in HTML: e.g. 'red', 'darkslategray'
Line style (linestyle abbreviated as ls):
Solid line: '-'
Dotted line: ' --'
Dotted line: '-.'
Dotted line: ':'
Point: '.'
Point type (marker):
pixel: ' ,'
Circle: 'o'
Upper triangle: '^'
Lower triangle: 'v'
Left triangle: '<'
Right triangle: '>'
Square shape: 's'
Plus sign: '+'
Fork shape: 'x'
Ring shape: 'D'
Thin prism shape: 'd'
Tripod facing down : '1' (that's Ya)
Tripod facing up: '2'
Tripod facing left: '3'
Tripod facing right: '4'
Hexagon: 'h'
Rotate hexagon: 'H'
Pentagon: 'p'
Vertical line: '|'
Horizontal line: '_'
Steps in gnuplot: 'steps' (can only be used in kwarg )
Marker size (markersize abbreviated as ms):
markersize: real number
Marker edge width (markeredgewidth abbreviated as mew):
markeredgewidth: real number
Marker edge color (markeredgecolor abbreviated as mec):
markeredgecolor: Any value in the color option
Marker surface color (markerfacecolor abbreviated as mfc):
markerfacecolor: Any value in the color option
Transparency (alpha):
alpha: floating point number between [0,1]
Linewidth (linewidth):
linewidth: real number
The above is the detailed content of Detailed explanation of Python's line drawing function based on the pylab library. For more information, please follow other related articles on the PHP Chinese website!