python 论文插图_如何在论文中画出漂亮的插图?

内容转自知乎,鉴于原帖内容较长,只选择了被赞最多的两个答案进行分享,并稍作编辑。更多内容请移步原帖:http://www.zhihu.com/question/21664179/answer/21540943。

1、利用R语言的ggplot2画图

ggplot2是R的一个package,画图风格相当文艺小清新。看论文看到用ggplot2画图都是一种享受哦!极为擅长于数据可视化。可惜ggplot2功能没有Python或者Matlab全面,画不出稀奇古怪的电路图不支持三维立体图像哦~不过作为一个统计绘图软件那些功能也不算很重要啦。

ggplot2有一个最大的特点是引入了图层的概念,各位用过Photoshop应该能理解吧?你可以随心所欲将各种基本的图叠加起来显示在一张图上,构造出各种各样新奇的图片!

先来一个最基础的散点图开胃。这是不调颜色软件包默认的配色。灰色的背景,黑色的小点点。拟合曲线和置信域看着就很舒服嘛。

来看看直方图,和傻大黑粗的Matlab相比精致秀气多啦!

还有精致的半透明效果!

折线图画得美到极致了好吗!

 

ggplot2能把密密麻麻的散点图画的极具美感,彻底治愈密集恐惧症!

还可以画地图!把非洲画得这么美我都想去了好吗!

Network也能画!

散点图+误差区间!

极坐标柱状图!

2、利用Python画图

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

像这种普通的函数图象:

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

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

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

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

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

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)

四行代码你就能拥有(后三行是画坐标平面上的等高线,严格的额说还是一行)。除此以外,不过你是矢量场,网络还是什么奇葩的需求都能够搞定:

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)')

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

这还没完,Matplotlib 还支持Latex公式的插入,当别人画的图还是这个样子的时候

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

如果再搭配上 IPython 作为运行终端:

简直就是神器啊,有木有!心动不如行动,还等什么?(奉上教程一篇Matplotlib Tutorial(译))

(13级博士班,林鑫)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值