Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Linienzeichnungsfunktion von Python basierend auf der Pylab-Bibliothek

Detaillierte Erläuterung der Linienzeichnungsfunktion von Python basierend auf der Pylab-Bibliothek

巴扎黑
巴扎黑Original
2017-08-09 11:00:091898Durchsuche

In diesem Artikel wird hauptsächlich die Methode von Python vorgestellt, die die Pylab-Bibliothek verwendet, um die Strichzeichnungsfunktion zu realisieren. Er analysiert die Betriebsfähigkeiten von Python mithilfe der relevanten Funktionen der Pylab-Bibliothek, um die Strichzeichnungsfunktion anhand spezifischer Beispiele zu realisieren erklärt die zugehörigen Funktionen und Parameterfunktionen. Freunde in Not können sich auf

beziehen. Dieser Artikel beschreibt das Beispiel für die Verwendung der Pylab-Bibliothek zum Implementieren der Strichzeichnungsfunktion in Python. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

pylab bietet eine relativ leistungsstarke Zeichenfunktion, aber es gibt viele Funktionen und Parameter, die leicht zu Verwirrung führen. Was wir normalerweise am häufigsten verwenden, ist das Zeichnen von Strichen. Im Folgenden sind einige häufig verwendete Strichzeichnungsfunktionen zur einfacheren Verwendung einfach gekapselt.


# -*- 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()

Die Darstellung der Operation ist wie folgt:

Anhang: Zitiert aus : https ://sites.google.com/site/guyingbo/matplotlib%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0

Zeilenattribute:

Farbe (abgekürzt als c):

Blau: 'b' (blau)
Grün: 'g' (grün)
Rot: 'r' (rot)
Cyan (Dunkelgrün): 'c' (Cyan)
Rotviolett (Magenta): 'm' (Magenta)
Gelb: 'y' (Gelb)
Schwarz: 'k' (Schwarz)
Weiß: „w“ (weiß)
Graustufendarstellung: z. B. 0,75 (jede Gleitkommazahl innerhalb von [0,1])
RGB-Darstellung: z. B. „#2F4F4F“ oder (0,18, 0,31, 0,31)
Jede zulässige Farbdarstellung in HTML: z. B. „red“, „darkslategray“
Linienstil (Linienstil abgekürzt als ls):

Durchgezogene Linie: „-“
Gepunktete Linie: „- -'
Gepunktete Linie: '-.'
Gepunktete Linie: ':'
Punkt: '.'
Punkttyp (Markierung):

Pixel: ','
Kreis: 'o'
Oberes Dreieck: '^'
Unteres Dreieck: 'v'
Linkes Dreieck: '577f5866acccddb77f14469c297e5540 '
Quadratische Form : 's'
Pluszeichen: '+'
Gabelform: 'x'
Prismenform: 'D'
Dünne Prismenform: 'd'
Stativ nach unten: '1' (das ist 丫)
Stativ nach oben zeigend: „2“
Stativ nach links zeigend: „3“
Stativ nach rechts zeigend: „4“
Sechseckig: „h“
Sechseck drehen: „H '
Fünfeck: 'p'
Vertikale Linie: '|'
Horizontale Linie: '_'
Schritte in Gnuplot: 'Schritte' (kann nur kwarg verwendet werden)
Markergröße ( markersize abgekürzt als ms):

markersize: reelle Zahl
Breite der Markierungskante (markeredgewidth abgekürzt als mew):

markeredgewidth: reelle Zahl
mark Edge color (markeredgecolor abgekürzt als mec ):

markerfacecolor: beliebiger Wert in der Farboption
Markerflächenfarbe (markerfacecolor abgekürzt als mfc):

markerfacecolor: beliebiger Wert in der Farboption
Transparenz (Alpha) :

Alpha: Gleitkommazahl zwischen [0,1]
Linienbreite (Linienbreite):

Linienbreite: reelle Zahl

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Linienzeichnungsfunktion von Python basierend auf der Pylab-Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn