tikz.sty如何画扇形?

TikZ手记之一
0. TikZ只是一个前端(frontend),画图功能通过调用底层PGF宏包完成。
1. 简易的tikz环境:
\tikz ...;
第一个遇到的分号表示画图的结束。
2. 简单的tikz环境:
\tikz{...;...;...;}
可以有多个画图语句。
3. 整体缩放图形倍数,magniication=1为原始大小
\begin{tikzpicture}[scale=&magnification&]
\end{tikzpicture}
4.&\def\&name&{&a
path&}: 自定义一个图形,方便重复使用。
例:自定义一个正方形 \def\rectangle{-- ++(1,0) -- ++(0,1) -- ++(-1,0) --
&name&/.style={&attributes&}:
自定义一组样式,方便重复使用,并可设置参数。
例:help line/.style={very thin, color=#1red!20!blue!20, rounded
corners=2pt}
6. \path是最基本的画图命令:
\draw=\path[draw],
\draw[color=&color&]=\path[draw=&color&]
\fill=\path[fill],
\fill[color=&color&]=\path[fill=&color&]
\filldraw=\path[fill, draw]
\clip=\path[clip]
+(x,y) 在之前的画笔点的基础上偏移(x,y),但并不改变画笔点;
++(x,y)同样是偏移(x,y),但把偏移之后的点做为新的画笔点。
\begin{scope}[&sequence of
atttibutes&]
\end{scope}
注意:\clip的作用范围是从其语句之后一直到当前所在scope的结束。
9. 球坐标(angle:radius)
弧 (point at the initial angle) arc(inital angle:terminal
angle:radius)
圆 (center) circle (radius)
椭圆 (center) ellipse (x radius and y radius)
矩形 (point 1) rectangle (point 2)
交点 (intersection of &line1& and
这里&line1&和&line2&可以是
(point1) -- (point2)
10. 可用的选项
箭头:-&, -&&,
旋转:rotate=&angle&
圆角:rounded corners=&x pt&
颜色:color=&color1!percentage1&&!color2!percentage2&...
虚线:dashed, loosely dashed, densely dashed, dotted, loosely
dotted, densely dotted
宽度:very thin, thin (正常宽度), thick, very thick
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。水木-TeX和LaTeX-用tikz画图,只能在pdf中查看效果吗?
主题文章列表
下一页&共1页&
用tikz画图,只能在pdf中查看效果吗?
发信人:&Firenze&(Firenze),&信区:&TeX
标&&题:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sat&May&11&09:33:54&2013),&站内
在dvi中显示的都是一些杂乱无章的直线,&生成pdf文件才能看到图形.&只能这样吗?&编译完了之后生成pdf文件多了一道工序,&浪费时间啊.
这就是命啊!老天爷给的命!每个人都有每个人的命,你要觉得你命不好,那看跟谁比了。……甭管老天爷给你吃什么,你张开嘴吃,甜的,嚼巴嚼巴咽下去,说一声“舒坦!”;苦的,照样嚼巴嚼巴咽下去,照样说一声:“舒坦!”你要是说不出来,你就喊:“舒坦!”“舒坦!”“舒坦!”
※&来源:·水木社区&newsmth.net·[FROM:&68.32.239.*]
Re: 用tikz画图,只能在pdf中查看效果吗?
发信人:&snoopyzhao&(只打酱油,不兼职),&信区:&TeX
标&&题:&Re:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sat&May&11&09:35:50&2013),&站内
【&在&Firenze&(Firenze)&的大作中提到:&】
:&在dvi中显示的都是一些杂乱无章的直线,&生成pdf文件才能看到图形.&只能这样吗?&编译完了之后生成pdf文件多了一道工序,&浪费时间啊.
这种工作,时间没有那么重要,呵呵……
Data&analysis&is&an&aid&to&thought,&not&a&substitute.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&---&Green&and&Hall,&1984
※&来源:·水木社区&newsmth.net·[FROM:&220.249.99.*]
Re: 用tikz画图,只能在pdf中查看效果吗?
发信人:&guxin00&(听筝),&信区:&TeX
标&&题:&Re:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sat&May&11&10:39:44&2013),&站内
直接生成pdf不好吗?我之前也是用latex编译,后来发现tikz里面有的功能latex不支持,换成XeLatex就没问题了
【&在&Firenze&(Firenze)&的大作中提到:&】
:&在dvi中显示的都是一些杂乱无章的直线,&生成pdf文件才能看到图形.&只能这样吗?&编译完了之后生成pdf文件多了一道工序,&浪费时间啊.
酒市酣歌共慨慷,況茲揮手上河梁。懷才蓋聶身偏隱,授命於期目尚张。
落落死生原一瞬,悠悠成敗亦何常!漸離筑繼荊卿劍,博浪椎興人未亡。
少壯今成兩鬢霜,畫圖重對益徬徨。生慚鄭國延韓命,死羨汪踦作魯殇。
有限山河供墮甄,無多涕淚泣亡羊。相期更聚神州鐵,鑄出金城萬里长。
※&来源:·水木社区&newsmth.net·[FROM:&71.58.106.*]
Re: 用tikz画图,只能在pdf中查看效果吗?
发信人:&Locke&(没想好),&信区:&TeX
标&&题:&Re:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sun&May&12&00:03:09&2013),&站内
【&在&Firenze&(Firenze)&的大作中提到:&】
:&在dvi中显示的都是一些杂乱无章的直线,&生成pdf文件才能看到图形.&只能这样吗?&编译完了之后生成pdf文件多了一道工序,&浪费时间啊.
※&来源:·水木社区&http://newsmth.net·[FROM:&8.35.200.*]
Re: 用tikz画图,只能在pdf中查看效果吗?
发信人:&AnnieStettin&(小熊正在学Salsa和ballroom&dancing),&信区:&TeX
标&&题:&Re:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sun&May&12&22:56:34&2013),&站内
这都什么年代了还有人用dvi这种古董
【&在&Firenze&的大作中提到:&】
:&在dvi中显示的都是一些杂乱无章的直线,&生成pdf文件才能看到图形.&只能这样吗?&编译完了之后生成pdf文件多了一道工序,&浪费时间啊.
&&&&&&&水乡江苏&&欢迎您的到来&Jiangsu@Newsmth&&&&&┓&&━┳━━━╋━╋━
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&┃&&&&&━╋━┓
&&&&&&&&&&┱┲╭━╮┏╮&┳╭━┓╭━─┳&&┳&&&&&┓&&&&┃&&&&&&&┃&&┃
&&&&&&┳&&┃┃┣━┫┃&\&┃┃&&┳╰━╮┃&&┃&&&&&&&&&&&┃&&&&&┌┃&&┃┓
&&&&&&╰━╯┹┺&&┹┺&╰┛╰━╯┣━╯╰━╯&&&&&│&&&&┃&&&&&&&┃&&┃
&&────────────────────────┛└━┻━━&&&╯&&┛
※&来源:·水木社区&http://www.newsmth.net·[FROM:&132.229.61.*]
Re: 用tikz画图,只能在pdf中查看效果吗?
发信人:&milksea&(肥了,又肥了&&&&_&&&),&信区:&TeX
标&&题:&Re:&用tikz画图,只能在pdf中查看效果吗?
发信站:&水木社区&(Sun&May&12&22:58:39&2013),&站内
pstricks&还是需要的
【&在&AnnieStettin&(小熊正在学Salsa和ballroom&dancing)&的大作中提到:&】
:&这都什么年代了还有人用dvi这种古董
世界上有&10&种人:懂&10&进制的和不懂&10&进制的。
※&来源:·水木社区&newsmth.net·[FROM:&211.99.222.*]
下一页&共1页&如何在论文中画出漂亮的插图?
经常看到别人论文中画出各种绚烂的插图,我想知道这些图都是用一些什么样的软件画出来的。比如下面给出的几张,好吧,我承认有的并不那么绚烂,但用什么样的软件比较合适呢?具体答案可以拓展到更为广远的作图领域。&br&&img src=&/9ea956da0_b.jpg& data-rawwidth=&456& data-rawheight=&439& class=&origin_image zh-lightbox-thumb& width=&456& data-original=&/9ea956da0_r.jpg&&&img src=&/1fd43ead7b9d2b7e05d6d_b.jpg& data-rawwidth=&486& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&486& data-original=&/1fd43ead7b9d2b7e05d6d_r.jpg&&&img src=&/9ee0ba66aeffd9c5b40d3b_b.jpg& data-rawwidth=&370& data-rawheight=&225& class=&content_image& width=&370&&&br&&img src=&/2b34f0cbaa615ba84cdc38921ce25cee_b.jpg& data-rawwidth=&490& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&490& data-original=&/2b34f0cbaa615ba84cdc38921ce25cee_r.jpg&&
经常看到别人论文中画出各种绚烂的插图,我想知道这些图都是用一些什么样的软件画出来的。比如下面给出的几张,好吧,我承认有的并不那么绚烂,但用什么样的软件比较合适呢?具体答案可以拓展到更为广远的作图领域。…
我喜欢用Mathematica画图,默认出图漂亮,自定义性好,支持常见各种类型的画图,能导出丰富的格式,动态交互和制作动画也很强大,还有一点:Mathematica很数学,语法和数学上的习惯更接近,函数或方程作图只需输入表达式和范围即可,Matlab和
Python中一般需要先手动离散化Matlab的可视化也很强大,不过被吐槽较多的一点是线条有锯齿(这个和取的点多少无关,其实也能消掉)()3维绘图色调不好看,当然如果有耐心也可以画出漂亮的图形的Python的matplotlib库我也用过,风格是模仿Matlab的,就默认绘图来说比Matlab好看(起码没锯齿),好处楼上已经有人说过了,但是并非没有
缺点,使用matplotlib需要一点编程和Python基础,对于编程基础不好的同学来说入门会比其他的软件慢一点;matplotlib的2维绘图很好,但是3维绘图目前还比较差,各种绘图细节方面的可选项不算很丰富,不支持隐函数绘图(形如F(x,y,z)=0这种),性能也不好(如3D的scatter,大概1万个点就开始卡了,Mathematica和Matlab 10万个点都不算卡),3维的用mayavi这个库可能更好普通函数绘图只需输入表达式以及取值范围,真正的一行代码。第二幅图中加上Mesh-&All,显示出所有点的位置。可以看出Mathematica很聪明,它知道在变化剧烈的地方取更多的点,变化较少的地方少取一些Mathematica不仅支持Latex,还能直接写二维的公式以及把公式导出为Latex不等式区域绘图,在Mathematica中使用RegionPlot很简单,但在Matlab和Matplotlib中有点麻烦(下面这个是在极坐标下的)绘制图表下面是几个3D的,比较下Matlab和Python画的爱心下面是几个3D的,比较下Matlab和Python画的爱心2行代码创建的2行代码创建的Matlab版:矢量场流线图矢量场流线图图论中的图图论中的图散点图更多美图
强烈推荐 Python 的绘图模块
。画出来的图真的是高端大气上档次,低调奢华有内涵~ 适用于从 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 作为运行终端(这张图是自己的~):如果再搭配上 IPython 作为运行终端(这张图是自己的~):简直就是神器啊,有木有!心动不如行动,还等什么?(奉上教程一篇 )==== Update:
18:04 ====经同学提醒,再补充一句,matplotlib 还可以话 xkcd 风格的图呦~(图片引用自网络)(图片引用自网络)此外结合 IPython Notebook 后更多精彩内容,请看==== Update:
20:04 ====如果嫌安装麻烦并且恰好在 Windows 系统下的话可以尝试Python的一个发行版。==== Update:
23:45 ====鉴于同学质疑 matplotlib 是否能画出题目中所示的图像,我在这里将题目中的图像用 matplotlib 画出来如下:代码在此处:代码在此处:代码在此处:代码在此处:======== 更新======看到楼下有人说配色和好看,唉....那我也贴几个吧...只不过当初限于篇幅没有写而已。首先,python 有一个专门的配色包,提供了从美术角度来讲的精美配色(戳这里感受)。此外还有一些致力于美化绘图的库,用起来也都非常方便,比如。废话不多说,上图就是王道。(一下图片来源网络)有人可能会说需要复杂的设置,其实也不用。比如上边这幅图,只需要多加一个参数就好:cmap=brewer2mpl.get_map('RdBu', 'diverging', 8, reverse=True).mpl_colormap,
楼下说到统计绘图。嘛 seaborn () 是一个调用 matplotlib 的统计绘图库,上图:代码一行,后边的几乎都是一行,没做其他设置,默认就这样。我就不贴其他的代码了:代码一行,后边的几乎都是一行,没做其他设置,默认就这样。我就不贴其他的代码了:g = sns.jointplot(x1, x2, kind="kde", size=7, space=0)
这还有个更炫酷的可交互式的绘图,大家自己戳开看吧哼哼,完爆了吧~~~~\(≧▽≦)/~
开头放颗爱心吧,图片是我自己用 LaTex 编译得到的,代码来自再放一个今天刚看到的多米诺的图,觉得超赞,代码来自再放一个今天刚看到的多米诺的图,觉得超赞,代码来自。以上just for fun。我认为,在如何在论文里画图的问题下面,没有人重视 LaTex 是一件不合理的事情。LaTex 在学术界的流行程度之广是不容置疑的,你敢说你投论文从来没用过 LaTex?期刊没有要求过你提交 Tex 源码?那么使用 LaTex 原生支持的图包来画论文中的插图是一件很自然的事情,况且,它的绘图工具库 (pgfplots) 也没有很难学。另外,从上的问答内容的丰富程度来看,在世界范围内,LaTex 还是很流行的。这个答案不打算很详细地教你如何入门,但我会给一些很简单很基础的例子来告诉你怎么用 LaTex 的代码画出基本的图形来。至于更复杂的例子,就看你自己啦,网上的 LaTex 资源是非常丰富的。对于我来说,只要有
就足够回答我几乎所有的 LaTex 日常编码及 pgfplots 的问题了(你么有看错,不用 google 也行,反正你 google 到的大多也是
的问答页面)。下面我会先说一下代码量的问题,因为在很多人提到 LaTex 的绘图代码量大。接着,我会说一下代码可读性的问题,我认为 LaTex 的 pgfplots 的绘图代码的可读性优于 python 的 matplotlib,我会举一个简单的例子来说明。如果你把这个例子看完,事实上也已经掌握了用 Latex 来绘制简单的函数图形的方法。然后,由于很多人肯定会关心如何根据已有的数据来绘制图形的问题,比如绘制某段时间的温度变化曲线之类,所以,我会再介绍一下用 LaTex 读取数据文件并绘制成曲线图的方法。我相信你读完这些内容之后会发现,其实用 LaTex 画图,上手也很容易,没有编程基础的话也没有很大难度。你会发现 LaTex 的 pgfplots 包中有很多设定都是对初学者很温馨的。最后,我会给出更多的效果图。当然当然,我这里说的肯定是片面的,因为我在努力地夸 LaTex。事实当然是它也有很多缺点,但因为大多数人都对它有偏见,所以我想多夸夸它会更有意义些。1. 代码量很多人似乎觉得 LaTex 的画图代码量很大,是的,我这里贴的一些图的代码量确实很大,但是,你要和其它画图方式相比较的话,总得找一样的例子吧,下面我给一个很简单的例子来比较一下用 LaTex 的 pgfplots 画图和用 python 的 matplotlib 来画图的代码。首先是 matplotlib 的。import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10)
line, = plt.plot(x, np.sin(x), '--', linewidth=2)
dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off
line.set_dashes(dashes)
plt.show()
接着是 pgfplots 的。\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [dash pattern=on 10 off 5 on 100 off 5, domain=0:10, samples=100, very thick, blue] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}
看,代码量没什么太大差距吧。2. 代码可读性其实,除了代码量以外还有一个很重要的问题需要考虑,就是学习曲线。是的,在这个 LaTex 的学习曲线很陡峭已经几乎被公认的年代里,我居然会说我们可以来比一下学习曲线。LaTex 的这个 pgfplots 真的很难学吗?下面我们来看一下上面给的这两段代码吧,我想说的其实是,LaTex 的这段画图代码对于初学者来说,可读性会比 python 更好,因为你不用看文档就能够大致猜到 LaTex 代码的含义。我们一行一行地看看绘图有关的代码。先来看看 LaTex 的。\begin{tikzpicture}
虽然 tikz 不知道是什么意思,但是 begin 和 picture 我知道,所以我猜这是要开始画图了。\begin{axis}
axis 的意思是坐标轴,恩,我猜这是要画坐标轴。\addplot [dash pattern=on 10pt off 5pt on 100pt off 5pt, domain=0:10, samples=100, very thick] {sin(deg(x))};
plot,这个词我在韦伯词典里查到它的意思是:3 a: to locate (a point) by means of coordinates b:
to locate (a curve) by plotted points c: to represent (an
equation) by means of a curve so constructed。所以理解应该没难度吧。dash pattern,明显是要指定虚线样式的节奏,后面跟了个 on 10pt off 5pt on 100pt off 5pt,on和 off 是什么?好像虚线就是画一段空一段嘛,所以大概这个 on 就表示画一段的意思,off 就表示空一段的意思,那么后面的数字应该就是这一段的长度了。domain=0:10,这似乎表示某个域的大小,一般来说,如果我们要画的是一条由某个函数表示的曲线的话,很可能需要关心的域是x的域。samples=100,任何一条曲线在画的时候,实际上都是需要采样 (sample) 的,那么这里的意思很可能就应该是采样点数量的意思。very thick,很粗?是的,这就是表示粗细,是什么东西的粗细呢?你画曲线的时候最关心的是什么东西的粗细?我相信是曲线本身吧。而且,回过去看看这一行开头写的是 \addplot,所以应该也能猜到这里需要描述的对象是曲线。blue,很显然,就是画成蓝色的意思。最后再看 sin(deg(x)),sin 大家都知道是什么意思,deg 似乎要想一下,恩...degree 大家都很常用吧,所以这里的意思似乎就是把x转换成角度的意思,所以,这个图的横坐标应该表示的是弧度。然后是两个 \end,意思应该也很容易猜到。现在我们来看 python 的代码,请注意,假设你是一个不会写代码的人。x = np.linspace(0, 10)
我知道 x 可能是曲线方程的自变量,但是 np 是个啥?下面加个点是什么意思?linspace 可能是 line space 的意思,但是 line space 是什么意思?大概是线的绘制空间吧。你觉得 pgfplots 里用的关键字 domain 和这里的 linspace ,哪个更容易被理解成 x 的取值范围?line, = plt.plot(x, np.sin(x), '--', linewidth=2)
我们不说 line 后面那个逗号和等号。plt.plot,似乎就是要画个什么曲线图的意思(主要是 plot 可以看懂)。后面的 x ,我大概能理解,因为上面说 x 等于某个 linspace,所以这里大概也是值linspace。np.sin(x),不管 np 是什么意思吧,sin(x) 还是能理解的。然后,你说 '--' 是什么意思?linewidth=2,这个很好理解,应该是线的宽度。不过我不知道2到底是有多宽,比方说它和坐标轴的粗细比,哪个宽?很多时候我们需要画出来看看才行。LaTex 里用的是 very thick 这样的词,所以我们会猜到它是比一般的线要粗很多的。dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off
dashes 是虚线的意思。但是后面中括号里的东西就比较难理解了,如果没有#后面的注释的话。再者,你看#后面的这段注释,是不是感觉和 LaTex 里的代码很像?所以哪段代码更容易理解应该很显然了吧。而且,如果不看这段注释,你知道第一个 10 表示的 on 还是 off 吗?3. 数据文件有很多人提到数据管理的问题。如果我没理解错,那么关键的问题就是如何利用存储在文件中的数据来画图。这一点,LaTex 完全可以做到。用 LaTex 最方便地可以读取的数据格式是纯文本数据,比如你有一个二维点的数组,你可以存成这样:1 -1.52 3.43 2.24 0.95 0.46 4.17 7.08 4.89 2.9我现在有一个365天的气温数据文件 temperaturesOslo.txt (这个文件来自),其中的365个数据是按照上面的格式存储的,读取这个文件并绘制出来的代码很简单:\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [mark = none, blue] table {temperaturesOslo.txt};
\end{axis}
\end{tikzpicture}
\end{document}
这段代码中,除了那些和环境设定相关的代码,关键的绘制代码就只有一行\addplot [mark = none, blue] table {temperaturesOslo.txt};
绘制的结果是数据文件中,数据的分隔符并不一定要用空格,可以自定义,使用逗号什么的也没问题,当默认读取失败时,可以在代码中注明你实际使用的分隔符。有人也提到和 MATLAB 的数据互通问题,MATLAB 保存的 .mat 文件 LaTex 读取起来不是很方便(应该有一些 LaTex 的库可以做到),主要是因为 .mat 文件是个二进制文件。但有一个变通的更简单的办法,因为 MATLAB 也可以很容易地把数据保存成纯文本的格式。假设我有一个 MATLAB 矩阵 mymatrix,将其保存成纯文本格式的代码是save('myfile.txt', 'mymatrix', '-ascii','-double');
得到的 myfile.txt 中的数据的格式就和我上面给出的数据格式相同。4. 更多效果图受不鸟了,居然几乎木有 LaTex 的图,我来贴。下面所有的图都来自,每张图下面都有源码所在的页面地址。首先是和问题中给的图比较接近的点阵图经典的函数曲线,不管是离散点还是直接用function三维的网络结构也没问题经典物理力学化学的元素周期表也是可以的电路如果你想要一个示波器光学分形也没什么啦有了分形,即使是圣诞树也是有可能的手绘风格还有Art可能,理论上说,其它工具也可以画出这些图,但是,我怀疑它们是否有一个和 LaTex 媲美的社区,提供这么多丰富的资源和代码。LaTex 还有一个和stackoverflow媲美的问答网站,我日常工作中会遇到的 LaTex 相关的问题的答案,都可以在这里找到
工科生说Matlab完爆其他数学系的说Mathematica高贵冷艳统计系的说R语言作图领域天下无敌 计算机系的说Python低调奢华有内涵…………
大家都理解错了嘛~楼主问的是论文里怎么才能画出精美的插图。顶在最前面的Python、Matlab等软件虽然能准确画各种常见图,但是从美术角度来看不及格好吗!最让人吐槽的就是这俩的配色!看看直方图那丑陋的配色!函数图难看的等高线!一点都不精美!要比高端大气上档次,本页所有答案完全不是R的ggplot2包的对手嘛~以前我也用Matlab,自从遇到ggplot2之后就彻底成为脑残粉了!ggplot2是R的一个package,画图风格相当文艺小清新。看论文看到用ggplot2画图都是一种享受哦!极为擅长于数据可视化。可惜ggplot2功能没有Python或者Matlab全面,画不出稀奇古怪的电路图不支持三维立体图像哦~不过作为一个统计绘图软件那些功能也不算很重要啦。ggplot2有一个最大的特点是引入了图层的概念,各位用过Photoshop应该能理解吧?你可以随心所欲将各种基本的图叠加起来显示在一张图上,构造出各种各样新奇的图片!先来一个最基础的散点图开胃。这是不调颜色软件包默认的配色。灰色的背景,黑色的小点点。拟合曲线和置信域看着就很舒服嘛。先来一个最基础的散点图开胃。这是不调颜色软件包默认的配色。灰色的背景,黑色的小点点。拟合曲线和置信域看着就很舒服嘛。来看看直方图,和傻大黑粗的Matlab相比精致秀气多啦!来看看直方图,和傻大黑粗的Matlab相比精致秀气多啦!还有精致的半透明效果!还有精致的半透明效果!折线图画得美到极致了好吗!柱状图+密度!柱状图+密度!Heat Map!这么乱糟糟的线也画得好清新!ggplot2能把密密麻麻的散点图画的极具美感,彻底治愈密集恐惧症!还可以画地图!把非洲画得这么美我都想去了好吗!还可以画地图!把非洲画得这么美我都想去了好吗!Network也能画!Network也能画!散点图+误差区间!散点图+误差区间!极坐标柱状图!极坐标柱状图!
請允許我重複回答一下、吧!美好的 R ggplot2 包 絕對值得被重複提起嗯!複雜的和美麗的荔紙多得無以附加,其實也許你需要一些更切實的應用,比如多圖對比。下面的圖例摘自網絡,數據來自 ,做的是 191 個國家 2000年 GDP per capita 與 Polity score of democracy 的散點圖。先看個用 lattice 包的圖例:再來看用 ggplot2 的效果:且不說美不美,是不是立刻感覺信息量大了起來、解釋起來會更輕鬆?嗯,我的碩士論文裡也用了類似上圖的圖例,比較了六個箱圖。好東西就要廣而告之。相信我!
先上结论:不用Excel,用Matlab, Visio, Mathematica, WolframAlpha等工具绘图。可尝试学习Paint.NET 、 Pixelmator 、 GeoGebra工具进行比较学习。————————解释说明分割线——————————Excel:在我有限的科研生涯中,用Excel几乎是不专业的代名词,从来没有看到Excel下画出的优美漂亮的图表,所以我至少是使用Matlab或者Mathematica作图,后者还在学习中。Matlab:Matlab的使用是将Excel中的数据以矩阵形式导入到Matlab的向量空间中,然后用Plot函数等其他作图的函数作出基本的图形以后,用菜单上选择Plot Toolkit工具(具体名字我忘了)对函数曲线中的表头、图例、箭头指示、参考线等进行微调。效果如下(自己做的真是渣啊= =):Visio:像下面这种简单的图形绘制,利用各种基本图形如线条、箭头和弧线,再善于利用Visio的对齐功能,就可以作出比较漂亮的图形,注意变量的格式规范如斜体、字体用Times New Roman字体,另外流程图用Visio绘制最佳。流程图一般用Visio,遵循设计的基本原则如对齐与保持大小一致。WolframAlpha:神器中的神器,除了计算功能强大,画出的函数图像也相当优美,画函数图象的时候直接输入函数图像即可自动生成,效果如下:接下来由请大神出场: 在他的博客中提到Q: 你的 Blog 配图都好精致!究竟是用什么画图的呢?A: 我用 Paint.NET 、 Pixelmator 、 Mathematica 、 GeoGebra 等工具画图。配图的秘诀就是背景透明化、图形反锯齿化、注重色彩、多用 png 、图内字体大小与正文一致。以下是图形范例:以上。
XfigTikz/PGFOmniGraffleInkscapeDiaGraphvizGeoGebraipeMahtematicaconceptdraw
化学系的,我讨厌编程,只会用带帮助的Mathematica,各种记不住函数名和语法……就这样,我用Illustrator、origin、chemoffice、Visio画了我遇到的所有图。chemoffice画有机化学结构式和仪器,origin画统计图,Visio画流程图,Illustrator画晶胞、配位多面体等等其他的……哦,对了,还有diamond,不过这个软件得到晶胞图是自动生成的,需要空间群、衍射等数据。也附加几个图吧……楼上用Matlab、LaTex、Python的大牛们别笑我。LaTex这反化学人类的东西,简直学不来,排个论文烦死了……先是Illustrator画的……尖晶石这个是一次无机合成化学课的作业题。全系没几个人会画啊,都徒手画在纸上……实在抱歉,由于这是专业课作业,为了防止下一届学生抄袭,加水印吧。然后是Visio画的,如果有人经常用百度知道,也常看看化学分类的画,你肯定特熟悉这种风格……origin主要做数据分析,图就不放了。origin主要做数据分析,图就不放了。化学系的孩纸没那么高端啊……高达上的软件玩不转……还好,我的专业方向也用不到那些复杂的图,黑白图足以!还是比较喜欢所见即所得,代码之类的东西……唉……刚才看到有人说Excel是不专业的代名词,我是十分不同意的。Excel也可以十分“专业”。比如我在本科2年级干的事:老师要求必须用origin画图,但当时觉得那玩意儿英文的,还不顺手(刚开始学),哪有Excel好用啊(小学3年级学的Excel,学校开电脑班)。于是用Excel模仿出了origin图的效果……没有一个人看出来哦。包括求导,都是在Excel里面做的。基础物化实验,数据不太好啦,别介意嘛……图片如需转载、商业用途 [特别是尖晶石那一张图] 请联系作者(好吧,就这破图,谁愿意用啊……)
如果你用 LaTeX 的话,推荐学一下 PGF/TikZ [1]。好处是直接在 LaTeX 文件中用命令绘制需要的各种图形,是我目前见过的最好的 LaTeX 图文混排工具。比如其他答案提到的工具的一个共同问题是图形和文档是分开制作的,图形中的文字和文档中的文字的字体和字号不一样。PGF/TikZ 就没有这个问题,工作原理不通。缺点是和 LaTeX 一样,学习曲线比较陡……[1]:
作图软件很多,我用过origin。
但是作图软件和作出漂亮的图是两回事,我用origin作图很简陋,而我的导师则能作得很漂亮。
自己做的分子结构可视化系统,基于 WebGL
推荐一个小型软件,一般作图够用了
发一张 gif 图吧发一张 gif 图吧原图地址
各位科学家们,我虽然无法看懂你们的专业论文中的插图,但是我作为一个助人为乐的设计师,常常帮助你们这样的专业人士“美化”插图。例如:很多时候,被“美化“插图的原作者,都会感觉到,新图和原图的差别。虽然这些图中的内容,是我不了解的知识,但是并不阻碍我通过制图软件把图做漂亮。漂亮的图和丑陋的图的区别:1.均匀的线条有时候科学家们从这里抓一个图,那里生成一个图,每个图因为放大缩小的关系,线条都变得粗细不同,这样不会好看的。我修改的第一步一般是把所有线条变成一样粗细。2.有规划的色彩同理,如果色彩纷乱,没有规划,看上去也会大打折扣。所以建议一开始就对色彩进行一个规划,多图都统一一下色调。3.统一的图形语言这里是锐利的形状,那里又是温柔的圆角,另外一个地方居然是三维的,这就好比论文第一段和第二段的语言风格不一样,这样可不行。一定要用同一种图形语言来制图。就算全部用儿童手绘效果,也比参杂了水平不同的各种图形语言要强啊。好啦,作为经常帮人美化插图的人,我也只能从图的角度随便说一说。其实,如果图的内容是正确的,想要图好看最主要要提高的能力绝对不是制图能力,而是审美能力。当你能够清楚地知道好看是怎么实现的,什么样的东西不好看的时候,你就能够轻松地运用自己熟悉的软件,制作出非常好的插图啦。如果有什么问题可以评论问我,我可以从设计的角度和科学家们一起探讨。
推荐paraview,开源可编程,我们空客噪声技术中心都用
这里我先讲示意图吧。先要想好你要用这个示意图表达什么问题,然后直接用你最熟悉的工具吧,最后存成 pdf 或者 eps,然后再插入到文档中就可以了。使用工具的时候,关键是要能够物尽其用。能把有限的工具组合起来用,例如可能在PowerPoint 里找不到好用的橡皮擦,那把一个白色的矩形放在不同的层上其实就可以实现各种效果的「橡皮擦」。画出这些示意图,其实不一定要是多么专业的软件, Keynote,PowerPoint ,只要熟练使用,我觉得这里给出的这些效果都能做出来。另外,如果做化学、生物领域的一些工作,要画一些小分子或者大分子的图,也是一定要熟练掌握某一种软件就好,最好是用各种命令行工具,当然如果已经用图形界面很熟练了也没有必要强制自己改,熟悉的工具就最好了。要知道,始终是你想表达的东西才是最重要的,例如:额……以上的示意图是我随手画的,效果肯定很差啦,没有什么想表达的意味,就是想略模仿并恶搞一下题主给出的一些示意图。画上图用的工具是就是 PowerPoint(椭圆+矩形+曲线),想要说的就是这个弄起来很容易,随手一弄就能画,因为没有仔细修过,平时如果我要自己演示要用,我还会处理得细致些。如果是放到文章里,看你想要发表的杂志的类型,有时候其实并不是越华丽越好。另外,作图的时候也是把自己常用的作图软件用熟。当然在此基础上,美观也很重要的。例如:下面的两个图其实是同一个图,只是换了配色方案。效果你可以感受一下,当然觉得哪种更好可能也跟具体的问题有关(例如下面的两个图不但是配色方案不同,在视觉上,二者所强调的区域也有所不同)。这样的东西就真的是要自己慢慢摸索了。如果你们组里面有老师或者学长学姐在作某些特定类型的图的时候有一些成熟的配色方案或者是显示为立体的方案,不论是 MATLAB 的还是 gnuplot 的等等,你都可以向他们请教,并且存在自己电脑里面随手备用。
我们常用Illustrator对图形进行很好的编辑,还可以画一些漂亮的示意图。
实验室统一用Igor Pro处理数据图,质量好,方便简单。Inkscape处理原理图,免费,好用。
现今严谨的学术圈流行的:PGF/TikZ:定性图,精细示意图,简单定量图,数据图表Asymptote:复杂定量图,三维矢量图另外还有历史悠久的MetaPost和PSTricks,但总的来说完全可以被以上两个更优秀的后辈替代。楼主列的这些图,是TikZ的专长,用TikZ画可以做到完美,特别是与LaTeX文档的整体交互,比用一般绘图软件好得多。例如字体匹配,与正文的参数传递,对图的模块化引用等。缺点是学习曲线过陡,非排版强迫症患者坚持不下来。除了画数据图表的子集pgfplots可以分分钟速成外,PGF/TikZ的其他功能,上手需要一两个星期不停地钻研,精通则需要一两年。至于Asymptote,表达力强,效果碉堡,你可以把它当成封装了高级绘图命令,然后输出矢量图的OpenGL。它对编程能力的要求同样很高。
来知乎,参与讨论}

我要回帖

更多关于 tikz 绘图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信