Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei Möglichkeiten, Bilder in Python zu zeichnen

Zwei Möglichkeiten, Bilder in Python zu zeichnen

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-15 15:49:1544000Durchsuche

Wie zeichne ich Bilder in Python? Hier stellen wir Ihnen zwei Python-Zeichenbibliotheken vor: Turtle und Matplotlib.

Verwandte Empfehlungen: „Python-Video

Zwei Möglichkeiten, Bilder in Python zu zeichnen

1 Turtle installieren

Python2-Installationsbefehl:

pip install turtule

Python3 Installationsbefehl:

pip3 install turtle

2 Grundkonzepte

2.1 Leinwand (Leinwand)

Die Leinwand ist die Schildkröte, die den Zeichenbereich für uns, wir, erweitert kann seine Größe und Ausgangsposition festlegen.

Es gibt zwei häufig verwendete Canvas-Methoden: screensize() und setup().

(1) Turtle.screensize(canvwidth=None, canvheight=None, bg=None)

Die Parameter sind die Breite (Einheitspixel), Höhe und Hintergrundfarbe der Leinwand

Zum Beispiel:

turtle.screensize(800, 600, "green")

turtle.screensize() #Zurück zur Standardgröße (400, 300)

(2 ) Turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

Parameter:

width, height: Wenn die Eingabebreite und Höhe sind ganze Zahlen, sie stellen Pixel dar; wenn es sich um eine Dezimalzahl handelt, stellt sie den Anteil des belegten Computerbildschirms dar.

(startx, starty): Diese Koordinate stellt die Position der oberen linken Ecke des rechteckigen Fensters dar. Wenn es leer ist, befindet sich das Fenster in der Mitte des Bildschirms

wie in:

turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)

2.2 Pinsel

Auf der Leinwand gibt es eine Koordinatenachse, deren Ursprung ist standardmäßig die Mitte der Leinwand. Auf dem Koordinatenursprung befindet sich eine kleine Schildkröte, die in die positive Richtung der x-Achse zeigt.

Hier verwenden wir zwei Wörter, um die kleine Schildkröte zu beschreiben: Markierung des Ursprungs (Position), Blick in die positive Richtung der x-Achse (Richtung). Beim Schildkrötenzeichnen werden Position und Richtung verwendet, um sie zu beschreiben Zustand der kleinen Schildkröte (Pinsel)

(1) Attribute des Pinsels

Der Pinsel verfügt über Attribute wie Farbe und Linienstärke.

1) Turtle.pensize(): Legt die Breite des Pinsels fest

2) Turtle.pencolor(): Es werden keine Parameter übergeben, um die aktuelle Pinselfarbe zurückzugeben Mit den Parametern können Sie die Pinselfarbe festlegen. Dabei handelt es sich um eine Zeichenfolge wie „grün“, „rot“ oder ein RGB-3-Tupel.

>>> pencolor('brown')
>>> tup = (0.2, 0.8, 0.55)
>>> pencolor(tup)
>>> pencolor()
    '#33cc8c'

3) Turtle.speed(speed): Stellen Sie die Geschwindigkeit der Pinselbewegung ein. Der Geschwindigkeitsbereich für das Zeichnen des Pinsels ist eine ganze Zahl von [0,10], je größer die Zahl, desto schneller

(2) Zeichenbefehle

Es gibt viele Befehle zum Steuern des Schildkrötenzeichnens. Diese Befehle können in drei Typen unterteilt werden: Bewegungsbefehle, Pinselsteuerbefehle und globale Steuerbefehle

Brush Sport-Befehl:

Befehl Erläuterung

TURTLE.Forwards (Entfernung) Verschieben Sie den Abstand um ein Pixel lang

Turtle.backWard (Abstand) Verschieben Sie die Entfernungspixellänge in die entgegengesetzte Richtung des Pinsels °

turtle.pendown()                                                                                          , um beim Verschieben Grafiken zu zeichnen. Die Standardeinstellung ist „Zeichnen“  

turtle.goto(x,y)                        Bewegen Sie den Pinsel an die Position mit den Koordinaten x und y

TURTLE.penup () Zeichnen Sie beim Bewegen keine Grafik, heben Sie den Stift an und verwenden Sie

TURTLE.Speed ​​​​(Geschwindigkeit) Pinsel zum Zeichnen an einer anderen Stelle

Turtle.circle () Zeichnen Sie den Kreis, und der Radius ist positiv (negativ), was anzeigt, dass der Kreis an der Stelle gezeichnet wird links (rechts) vom Pinsel

Schmerzkontrollbefehl:

>

Befehl

Erklärung

TURTLE.Pensize (width) Die Breite der Grafik

TURTLE.PenColor () Pinselfarbe turtle.fillcolor(colorstring)                                                                                                                                                                                  Befindet es sich derzeit im Füllzustand? hideturtle() Pfeilanzeige ausblenden; TURTLE.Showturtle () Der entsprechende

globale Steuerbefehl

:

Befehl

Befehl

>                                                     

TURTLE.Undo () zum Widerrufen der vorherigen Turtle-Aktion

TURTLE.ISVISISible () Rückkehr zum aktuellen TURTLE, ob

STAMP () Kopieren der aktuellen Grafik

turtle.write(s[,font=("font-name",font_size,"font_type")]) 写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项。

例子:

import turtle
def drawSnake(rad, angle, len, neckrad):
    for _ in range(len):
        turtle.circle(rad, angle)
        turtle.circle(-rad, angle)
    turtle.circle(rad, angle/2)
    turtle.forward(rad/2)  # 直线前进
    turtle.circle(neckrad, 180)
    turtle.forward(rad/4)
if __name__ == "__main__":
   turtle.setup(1500, 1400, 0, 0)
   turtle.pensize(30)  # 画笔尺寸
   turtle.pencolor("green")
   turtle.seth(-40)    # 前进的方向
   drawSnake(70, 80, 2, 15)

Zwei Möglichkeiten, Bilder in Python zu zeichnen

Matpliotlib

前提

linux ubuntu 下需安装下面三个包:

Numpy, Scipy,Matplotlib

分别输入下面的代码进行安装:

pip install numpy
pip install scipy
sudo apt-get install python-matplotlib

测试是否安装成功

python
>>> import pylab

如果没有报错则安装成功

开始画图

1. 画最简单的直线图

代码如下:

import numpy as np
import matplotlib.pyplot as plt 
x=[0,1]
y=[0,1]
plt.figure()
plt.plot(x,y)
plt.savefig("easyplot.jpg")

结果如下:

Zwei Möglichkeiten, Bilder in Python zu zeichnen

代码解释:

#x轴,y轴
x=[0,1]
y=[0,1]
#创建绘图对象
plt.figure()
#在当前绘图对象进行绘图(两个参数是x,y轴的数据)
plt.plot(x,y)
#保存图象
plt.savefig("easyplot.jpg")

Das obige ist der detaillierte Inhalt vonZwei Möglichkeiten, Bilder in Python zu zeichnen. 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