Maison > Article > développement back-end > Explication détaillée de la fonction de dessin au trait de Python basée sur la bibliothèque pylab
Cet article présente principalement la méthode de Python utilisant la bibliothèque pylab pour réaliser la fonction de dessin au trait. Il analyse les compétences opérationnelles de Python en utilisant les fonctions pertinentes de la bibliothèque pylab pour réaliser la fonction de dessin au trait avec des exemples spécifiques, et explique également. les fonctions et fonctions de paramètres associées. Les amis dans le besoin peuvent se référer à
Cet article décrit l'exemple d'utilisation de la bibliothèque pylab pour implémenter la fonction de dessin au trait en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
pylab fournit une fonction de dessin relativement puissante, mais il existe de nombreuses fonctions et paramètres, ce qui est facile à confondre. Ce que nous utilisons habituellement le plus, c’est le dessin au trait. Ci-dessous, certaines fonctions de traçage couramment utilisées sont simplement encapsulées pour une utilisation facile.
# -*- 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()
Le rendu de l'opération est le suivant :
Pièce jointe : Cité de : https ://sites.google.com/site/guyingbo/matplotlib%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0
Attributs de ligne :
Couleur (en abrégé c) :
Bleu : 'b' (bleu)
Vert : 'g' (vert)
Rouge : 'r' (rouge)
Cyan (vert foncé) : 'c' (cyan)
Rouge violet (magenta) : 'm' (magenta)
Jaune : 'y' (jaune)
Noir : 'k' (noir)
Blanc : 'w' (blanc)
Représentation en niveaux de gris : par exemple 0,75 (n'importe quel nombre à virgule flottante compris entre [0,1])
Représentation RVB : par exemple '#2F4F4F' ou (0,18, 0,31, 0,31)
Toute représentation légale des couleurs en HTML : par exemple 'red', 'darkslategray'
Style de ligne (style de ligne abrégé en ls) :
Ligne continue : '-'
Ligne pointillée : '- -'
Ligne pointillée : '-.'
Ligne pointillée : ':'
Point : '.'
Type de point (repère) :
pixel : ','
Cercle : 'o'
Triangle supérieur : '^'
Triangle inférieur : 'v'
Triangle gauche : '7cc2e206a5d6b1d2dc63e30606993e2f 's'
Plus : '+'
Fourche : 'x'
Prismatique : 'D'
Prisme fin : 'd'
Trépied vers le bas : '1' (c'est 丫)
Trépied face vers le haut : '2'
Trépied face à gauche : '3'
Trépied face à droite : '4'
Hexagonal : 'h'
Tourner l'hexagone : 'H'
Pentagone : 'p'
Ligne verticale : '|'
Ligne horizontale : '_'
Étapes dans gnuplot : 'steps' (ne peut être utilisé que kwarg)
taille du marqueur (taille du marqueur abrégé en ms) :
largeur du bord du marqueur (markeredgewidth en abrégé mew) :
couleur du bord de la marque (markeredgecolor en abrégé mec) :
Couleur de la face du marqueur (markerfacecolor en abrégé mfc) :
Transparence (alpha) :
Linewidth (linewidth) :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!