Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

王林
Libérer: 2023-04-13 15:01:06
avant
1289 Les gens l'ont consulté

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Texte

Bonjour à tous, je suis une technologie d'intelligence artificielle Python

Méthode 1

Je recommande vivement le module de traçage de Python matplotlib : traçage python. Les images dessinées sont vraiment haut de gamme et élégantes, discrètes, luxueuses et connotatives ~ Elles conviennent à toutes sortes de dessins de la 2D à la 3D, du scalaire au vectoriel. Peut être enregistré dans différents formats allant de eps, pdf à svg, png, jpg. De plus, les fonctions de dessin de Matplotlib portent fondamentalement des noms similaires à ceux de Matlab, le coût d'apprentissage de la migration est donc relativement faible. Open source et gratuit. Comme le montre l'image (l'image dans la description du titre est à la fin) : (Les images suivantes sont tirées de la galerie de vignettes)

Images de fonctions courantes comme celle-ci :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)
Copier après la connexion

et ce graphique Scatter (chinois n'est pas disponible) Sachez quoi dire...) :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

plt.scatter(x, y, s=area, alpha=0.5)
Copier après la connexion

Courbes exquises, correspondance des couleurs translucides. Montrez votre personnalité noble et cool. Le plus important est qu’il suffit d’une seule ligne de code pour le faire. Désormais, vous n'aurez plus à supporter la pénible correspondance des couleurs dans Matlab et GNUPlot.

Vous voulez dessiner des données 3D ? Pas de problème (il peut être plus pratique d'utiliser mayavi) :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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)
Copier après la connexion

Vous pouvez avoir quatre lignes de code (les trois dernières lignes servent à tracer des courbes de niveau sur le plan de coordonnées, à proprement parler, c'est toujours une ligne ).

De plus, si vous êtes un champ vectoriel, le réseau ou tout autre besoin étrange peut être géré :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn)
plt.colorbar()
Copier après la connexion

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

plt.triplot(x, y, triangles, 'go-')
plt.title('triplot of user-specified triangulation')
plt.xlabel('Longitude (degrees)')
plt.ylabel('Latitude (degrees)')
Copier après la connexion

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

ax = plt.subplot(111, polar=True)
bars = ax.bar(theta, radii, width=width, bottom=0.0)
Copier après la connexion

Ce n'est pas encore fini, Matplotlib prend également en charge l'insertion de formules de latex, lorsque l'image dessinée par d'autres ressemble toujours à ceci (l'image suivante est citée du didacticiel Matplotlib (traduction))

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Vous pouvez la transformer en quelque chose comme ceci :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Si elle est associée avec IPython comme terminal en cours d'exécution (cette image a été dessinée par moi-même ~) :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

C'est simplement un artefact, existe-t-il ?

Il vaut mieux agir que bouger son cœur. Qu'attendez-vous ?

Comme le rappelle @XuZhu, je voudrais ajouter que matplotlib peut également produire des graphiques de style xkcd~

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

(photo citée sur Internet)

De plus, pour un contenu plus excitant après combinaison avec IPython Notebook, veuillez consulter http://nbviewer.ipython.org/

Si l'installation pose problème et que vous êtes sous un système Windows, vous pouvez essayer winpython - Portable Scientific Python 2/3 32/64bit Distribution pour Windows .

Puisque @van li s'est demandé si matplotlib pouvait dessiner l'image montrée dans la question, j'utiliserai matplotlib pour dessiner l'image dans la question ici comme suit :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Le code est ici :

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Le code est ici :

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

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

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

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

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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

cmap=brewer2mpl.get_map('RdBu', 'diverging', 8, reverse=True).mpl_colormap,
Copier après la connexion

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

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0)
Copier après la connexion

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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

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

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

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

方法二

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

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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

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

答案是肯定的。

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

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

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Ensuite, modifiez simplement la position, la taille, la couleur et d'autres informations pour obtenir une image avec un style similaire (aucune barre d'erreur ajoutée) :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Quand nous utilisons cette idée pour réfléchir à la façon de dessiner des illustrations, c'est facile pour réaliser vos propres petites idées, imiter ou même créer des illustrations idéales.

Par exemple, un jour, j'ai trouvé que la couleur du ciel du soir était très belle, et j'ai pensé : Pourquoi ne puis-je pas la dessiner dans l'illustration du papier ? (Voir : Illustration papier Matlab correspondance des couleurs 2 - dégradé naturel)

Alors,

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Autre exemple, un jour, j'ai vu une photo de ma copine et j'ai trouvé qu'elle était belle, et j'ai pensé : Pourquoi je ne peux pas le dire. Qu'en est-il des illustrations qu'elle a dessinées dans le journal ? (Voir : Illustration sur papier Matlab correspondance des couleurs 1 - c'est la couleur de ma copine)

Alors,

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

A ce moment-là, un ami était sur le point de dire : "Oh, répondeur, tu fais toutes ces fantaisies C'est trop compliqué de taper le code ligne par ligne. »

C'est faux.

Tout comme R a ggplot2 et Python a matplotlib, Matlab propose en fait de nombreuses boîtes à outils de dessin prêtes à l'emploi, et vous n'avez pas besoin de les développer vous-même.

Par exemple,

Pierre Morel [1] combiné avec ggplot2, a développé l'outil gramm pour dessiner des graphiques complexes.

Inspiré de ggplot2 (Wickham 2009), l'implémentation R des principes de « grammaire graphique » (Wilkinson 1999), gramm améliore la fonctionnalité de traçage de Matlab, permettant de générer des figures complexes à l'aide de code orienté objet de haut niveau

Exemple. L'effet est le suivant :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !De même, Stephen Cobeldick [2] couleur matplotlib Le schéma a été transplanté dans Matlab.

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !En d'autres termes, vous pouvez utiliser la palette de couleurs de matplotlib directement dans Matlab, et vous n'êtes pas obligé de toujours « jeter ».

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !Les palettes de couleurs par défaut de MatPlotLib 2.0 portées sur MATLAB Cette soumission inclut également les palettes de couleurs Line ColorOrder

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !L'exemple d'effet est le suivant :

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

 !

Dessiner d'aussi belles illustrations professionnelles en Python ? Tellement facile !

Il existe également de nombreuses boîtes à outils spécifiquement destinées aux illustrations papier, je ne les présenterai donc pas une par une ici.

En général, les outils ne sont que des outils, ils ne sont ni supérieurs ni inférieurs.

Si vous voulez dessiner de belles illustrations, la clé réside dans la personne qui utilise les outils.

Concentrez-vous et atteignez le sommet.

Référence :

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

​https://www.php.cn/link/171ae1bbb81475eb9 6287dd78565b38b​

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!