展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > 用Python绘制华丽的专业插图,这么简单!

用Python绘制华丽的专业插图,这么简单!

正文大家好,我是Python人工智能技术方法一强烈推荐Python的绘图模块matplotlib:pythonplotting。画出来的图真的是高端大气上档次,低调奢华有内涵~适用于从2D到3D,从标量到矢量的各种绘图。能够保存成从eps,pdf到svg,png,jpg的多种格式。并且Matplotlib的绘图函数基本上都与Matlab的绘图函数名字都差不多,迁移的学习成本比较低。开源免费。如图所示(题目描述中的图在最后):(以下图片均引用自Thu

本文目录

    用Python绘制华丽的专业插图,这么简单!

    正文

    大家好,我是Python人工智能技术

    方法一      

    强烈推荐 Python 的绘图模块 matplotlib: python plotting 。画出来的图真的是高端大气上档次,低调奢华有内涵~ 适用于从 2D 到 3D,从标量到矢量的各种绘图。能够保存成从 eps, pdf 到 svg, png, jpg 的多种格式。并且 Matplotlib 的绘图函数基本上都与 Matlab 的绘图函数名字都差不多,迁移的学习成本比较低。开源免费。如图所示(题目描述中的图在最后):(以下图片均引用自 Thumbnail gallery )

    像这种普通的函数图象:

    用Python绘制华丽的专业插图,这么简单!

    plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)

    以及这种 Scatter 图(中文不知道该怎么说…):

    用Python绘制华丽的专业插图,这么简单!

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

    精致的曲线,半透明的配色。显出你那高贵冷艳的X格,最重要的是只需一行代码就能搞定。从此再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。

    想画 3D 数据?没有问题 (用mayavi可能更方便):

    用Python绘制华丽的专业插图,这么简单!

    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)

    四行代码你就能拥有(后三行是画坐标平面上的等高线,严格的额说还是一行)。

    除此以外,不过你是矢量场,网络还是什么奇葩的需求都能够搞定:

    用Python绘制华丽的专业插图,这么简单!

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

    用Python绘制华丽的专业插图,这么简单!

    plt.triplot(x, y, triangles, 'go-')
    plt.title('triplot of user-specified triangulation')
    plt.xlabel('Longitude (degrees)')
    plt.ylabel('Latitude (degrees)')

    用Python绘制华丽的专业插图,这么简单!

    ax = plt.subplot(111, polar=True)
    bars = ax.bar(theta, radii, width=width, bottom=0.0)

    这还没完,Matplotlib 还支持Latex公式的插入,当别人画的图还是这个样子的时候(以下图片引用自Matplotlib Tutorial(译))

    用Python绘制华丽的专业插图,这么简单!

    你能够把它变成这个样子:

    用Python绘制华丽的专业插图,这么简单!

    如果再搭配上 IPython 作为运行终端(这张图是自己绘制的~):

    用Python绘制华丽的专业插图,这么简单!

    简直就是神器啊,有木有!

    心动不如行动,还等什么?

    经@许铖同学提醒,再补充一句,matplotlib 还可以话 xkcd 风格的图呦~

    用Python绘制华丽的专业插图,这么简单!

    (图片引用自网络)

    此外结合 IPython Notebook 后更多精彩内容,请看http://nbviewer.ipython.org/

    如果嫌安装麻烦并且恰好在 Windows 系统下的话可以尝试Python的一个发行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。

    鉴于@van li同学质疑 matplotlib 是否能画出题目中所示的图像,我在这里将题目中的图像用 matplotlib 画出来如下:

    用Python绘制华丽的专业插图,这么简单!

    代码在此处:

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

    用Python绘制华丽的专业插图,这么简单!

    代码在此处:

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

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

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

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

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

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

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

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

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

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

    用Python绘制华丽的专业插图,这么简单!

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

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

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

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

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

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

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

    方法二

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

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

    用Python绘制华丽的专业插图,这么简单!

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

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

    答案是肯定的。

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

    用Python绘制华丽的专业插图,这么简单!

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

    用Python绘制华丽的专业插图,这么简单!

    然后,只需再修改一下位置、尺寸、颜色等信息,就可以得到风格差不多的图(没加误差棒):

    用Python绘制华丽的专业插图,这么简单!

    当我们用这一思想来思考该如何绘制插图时,就很容易实现自己的小想法,仿造甚至创造出理想的插图。

    比如,某一天,发现傍晚的天空颜色很美,心想:为什么不能把它画到论文插图里呢?(见:Matlab论文插图配色2——自然渐变)

    于是,

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    再比如,某一天,看到女朋友的照片,觉得很美,心想:为什么不能把她画到论文插图里呢?(见:Matlab论文插图配色1——是女朋友的颜色)

    于是,

    用Python绘制华丽的专业插图,这么简单!

    这时,有朋友就要说了:“哎呀答主,你整这些个花里花哨的东西,还不是得一行代码一行代码的敲出来啊,太麻烦了吧。”

    此言差矣。

    就像R有ggplot2,Python有matplotlib,Matlab其实也有很多现成的绘图工具包,并不需要你自己开发。

    比如,

    Pierre Morel [1] 结合ggplot2,开发了gramm工具,用于绘制复杂图形。

    Inspired by ggplot2 (Wickham 2009), the R implementation of “grammar of graphics” principles (Wilkinson 1999), gramm improves Matlab’s plotting functionality, allowing to generate complex figures using high-level object-oriented code.

    示例效果如下:

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    类似的,Stephen Cobeldick [2] 将matplotlib配色方案移植到了Matlab。

    也就是说,在Matlab中就可以直接用matplotlib的配色方案了,就不必总是‘jet’了。

    The MatPlotLib 2.0 default colormaps ported to MATLAB. This submission also includes the Line ColorOrder colormaps!

    示例效果如下:

    用Python绘制华丽的专业插图,这么简单!

    用Python绘制华丽的专业插图,这么简单!

    还有很多专门针对论文插图的工具包,这里就不一一介绍了。

    总的来说,工具只是工具,它们并没有高低贵贱之分。

    若想画出好看的插图,关键还是在于使用工具的人。

    集中一点,登峰造极。

    参考:

    ​​Morel P . Gramm: grammar of graphics plotting in Matlab.​​​

    ​​Cobeldick S . MatPlotLib Perceptually Uniform Colormaps.​​

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。