Heim  >  Artikel  >  Backend-Entwicklung  >  So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

王林
王林nach vorne
2023-04-13 15:01:061248Durchsuche

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Text

Hallo zusammen, ich bin Python Artificial Intelligence Technology

Methode 1

Wir empfehlen dringend das Plotmodul Matplotlib von Python: Python Plotting. Die gezeichneten Bilder sind wirklich hochwertig und edel, zurückhaltend, luxuriös und konnotativ. Sie eignen sich für alle Arten von Zeichnungen von 2D bis 3D, von Skalar bis Vektor. Kann in verschiedenen Formaten von EPS, PDF bis SVG, PNG, JPG gespeichert werden. Darüber hinaus haben die Zeichenfunktionen von Matplotlib grundsätzlich ähnliche Namen wie Matlab, sodass der Lernaufwand für die Migration relativ gering ist. Open Source und kostenlos. Wie im Bild gezeigt (das Bild in der Titelbeschreibung befindet sich am Ende): (Die folgenden Bilder stammen aus der Miniaturbildgalerie)

Ein häufiges Funktionsbild wie dieses: #🎜🎜 ##🎜 🎜#

plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)
So schöne professionelle Illustrationen in Python zeichnen? So einfach! und dieses Streubild (ich weiß nicht, wie man es auf Chinesisch sagt...):

#🎜🎜 #


plt.scatter(x, y, s=area, alpha=0.5)

Exquisite Kurven, durchscheinende Farbabstimmung. Zeigen Sie Ihre edle und coole Persönlichkeit. Das Wichtigste ist, dass Sie dafür nur eine Codezeile benötigen. Von nun an müssen Sie sich nicht mehr mit der mühsamen Farbabstimmung in Matlab und GNUPlot herumschlagen. So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Möchten Sie 3D-Daten zeichnen? Kein Problem (möglicherweise ist es bequemer, Mayavi zu verwenden):


ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)
cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

Sie können vier Zeilen Code haben (die letzten drei Zeilen). dienen zum Zeichnen der Koordinatenebene. Die oben stehenden Höhenlinien sind streng genommen eine Linie. So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Darüber hinaus können, solange Sie ein Vektorfeld sind, das Netzwerk oder andere seltsame Bedürfnisse behandelt werden:

#🎜🎜 ##🎜 🎜#

plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn)
plt.colorbar()

plt.triplot(x, y, triangles, 'go-')
plt.title('triplot of user-specified triangulation')
plt.xlabel('Longitude (degrees)')
plt.ylabel('Latitude (degrees)')
So schöne professionelle Illustrationen in Python zeichnen? So einfach!

ax = plt.subplot(111, polar=True)
bars = ax.bar(theta, radii, width=width, bottom=0.0)
So schöne professionelle Illustrationen in Python zeichnen? So einfach!Das ist noch nicht vorbei. Matplotlib unterstützt auch das Einfügen von Latexformeln wenn Zeichnungen von anderen gezeichnet werden. Wenn es immer noch so aussieht (das folgende Bild ist aus dem Matplotlib-Tutorial (Übersetzung) zitiert) kann es so ändern, dass es so aussieht:# 🎜🎜#

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Bei Kopplung mit IPython als laufendem Terminal (dieses Bild wurde von mir selbst gezeichnet~):

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Es ist einfach ein Artefakt, existiert es nicht?

Es ist besser zu handeln als zu handeln, worauf warten Sie noch? So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Wie von @XuZhu erinnert, möchte ich hinzufügen, dass matplotlib auch Grafiken im xkcd-Stil erzeugen kann~

So schöne professionelle Illustrationen in Python zeichnen? So einfach!# 🎜🎜#

(Bild zitiert aus dem Internet)


Weitere spannende Inhalte in Kombination mit IPython Notebook finden Sie außerdem unter http://nbviewer.ipython.org/ #🎜🎜 #


Wenn die Installation mühsam ist und Sie zufällig ein Windows-System verwenden, können Sie winpython – Portable Scientific Python 2/3 32/64bit Distribution für Windows ausprobieren.


Da @van li gefragt hat, ob Matplotlib das in der Frage gezeigte Bild zeichnen kann, werde ich Matplotlib verwenden, um das Bild in der Frage hier wie folgt zu zeichnen:

#🎜 🎜 #

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Der Code ist hier:

https://gist.github.com/coldfog/c479124328fc6bb8b789#🎜 🎜 #


Der Code ist hier:


https://gist.github.com/coldfog / 5da63a6958fc0a949b52

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

看到楼下有人说配色和好看,唉....那我也贴几个吧...只不过当初限于篇幅没有写而已。另外,搜索公众号顶级python后台回复“进阶”,获取一份惊喜礼包。

首先,python有一个专门的配色包jiffyclub/brewer2mpl,提供了从美术角度来讲的精美配色(戳这里感受ColorBrewer: Color Advice for Maps)。

此外还有一些致力于美化绘图的库,用起来也都非常方便,比如olgabot/prettyplotlib 。

废话不多说,上图就是王道。(下面图片来源网络)

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

有人可能会说需要复杂的设置,其实也不用。比如上边这幅图,只需要多加一个参数就好:

cmap=brewer2mpl.get_map('RdBu', 'diverging', 8, reverse=True).mpl_colormap,

楼下说到统计绘图。嘛seaborn 是一个调用 matplotlib 的统计绘图库,上图:

(https://github.com/mwaskom/seaborn)  

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

代码一行,后边的几乎都是一行,没做其他设置,默认就这样。我就不贴其他的代码了:

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0)

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

还有个更炫酷的可交互式绘图,大家自己戳开看吧:

http://nbviewer.ipython.org/github/plotly/python-user-guidechaocc/blob/master/s0_getting-started/s0_getting-started.ipynb

遇到安装问题的请尝试Anaconda这个Python发行版。下载安装后直接使用即可,它几乎预装了所有要用到的科学计算及可视化的库。

有盆友在评论里说希望能有完整的教程,确实就这个答案来说,离实际使用还有很大的距离,网上相关的中文资料也不多。不过真要写起来这个答案也装不下,况且写在这个问题下也不是很恰当。等到那天我有专栏了再说吧,到时候也许会写一个关于可视化的系列教程。

方法二

翻遍这个问题下的所有回答,发现凡是提到Matlab的,其评价中常有‘锯齿’,‘菜鸟’,‘难看’,‘不忍直视’等标签。

然而,2020年了,技术提升了,观念进步了,当一些基本问题解决后,Matlab还那么‘不堪’吗?

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

观察Mathematica、Origin、Python/matplotlib、R/ggplot2等软件绘制的数据、结果图,其与Matlab图的差异主要体现在点、线、面等对象属性(位置、尺寸、颜色等)的不同上。

既然只是属性的不同,那是不是只要修改一下这些信息,就可以实现各种软件绘图风格之间的转换了呢?

答案是肯定的。

比如,这是高赞回答 @冯昱尧用Python/matplotlib绘制的一幅图:

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

我们用Matlab默认属性来绘制,效果是这样的(没加误差棒):

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Dann ändern Sie einfach die Position, Größe, Farbe und andere Informationen, um ein Bild mit einem ähnlichen Stil zu erhalten (ohne hinzugefügte Fehlerbalken):

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Wenn wir diese Idee nutzen, um darüber nachzudenken, wie man Illustrationen zeichnet, ist es einfach um eigene kleine Ideen zu verwirklichen, nachzuahmen oder sogar ideale Illustrationen zu erstellen.

Zum Beispiel fand ich eines Tages die Farbe des Abendhimmels sehr schön und dachte: Warum kann ich sie nicht in die Illustration des Papiers einzeichnen? (Siehe: Matlab-Papierillustration Farbanpassung 2 – natürlicher Farbverlauf)

Also,

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Ein weiteres Beispiel: Eines Tages sah ich ein Foto meiner Freundin und fand es wunderschön und dachte: Warum kann ich es nicht sagen? Was ist mit den Illustrationen, die sie in der Zeitung gezeichnet hat? (Siehe: Matlab-Papierillustration Farbanpassung 1 – es ist die Farbe meiner Freundin)

Also,

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Zu diesem Zeitpunkt wollte ein Freund gerade sagen: „Oh, Antworter, du machst all diese Fantasien Dinge Es ist zu mühsam, den Code Zeile für Zeile einzutippen.“

Das ist falsch.

Genau wie R über ggplot2 und Python über matplotlib verfügt, verfügt Matlab tatsächlich über viele vorgefertigte Zeichen-Toolkits, die Sie nicht selbst entwickeln müssen.

Zum Beispiel hat

Pierre Morel [1] in Kombination mit ggplot2 das Gramm-Tool zum Zeichnen komplexer Grafiken entwickelt.

Inspiriert von ggplot2 (Wickham 2009), der R-Implementierung der „Grammatik der Grafik“-Prinzipien (Wilkinson 1999), verbessert gramm die Plotfunktionalität von Matlab und ermöglicht die Generierung komplexer Figuren mit objektorientiertem Code auf hoher Ebene

Beispiel Die Wirkung ist folgende:

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!Ähnlich auch Stephen Cobeldick [2] Farbe matplotlib Das Schema wurde nach Matlab übertragen.

So schöne professionelle Illustrationen in Python zeichnen? So einfach!Mit anderen Worten: Sie können das Farbschema von matplotlib direkt in Matlab verwenden und müssen nicht immer „jetzt“ sein.

So schöne professionelle Illustrationen in Python zeichnen? So einfach!Die nach MATLAB portierten MatPlotLib 2.0-Standardfarbkarten. Diese Einreichung enthält auch die Line ColorOrder-Farbkarten.

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

So schöne professionelle Illustrationen in Python zeichnen? So einfach!

Es gibt auch viele Toolkits speziell für Papierillustrationen, daher werde ich sie hier nicht einzeln vorstellen.

Im Allgemeinen sind Werkzeuge nur Werkzeuge und es wird nicht zwischen hoch und niedrig unterschieden.

Wenn Sie schöne Illustrationen zeichnen möchten, liegt der Schlüssel in der Person, die die Werkzeuge verwendet.

Konzentriere dich und erreiche den Gipfel.

Referenz:

​https://www.php.cn/link/b3ddb7c5b10be95dbc3f9152c58becce​#🎜. 🎜# ​​

​https://www.php.cn/link/171ae1bbb81475eb96287dd78565b38b​

Das obige ist der detaillierte Inhalt vonSo schöne professionelle Illustrationen in Python zeichnen? So einfach!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen