设为首页
收藏本站
开启辅助访问
切换到宽版
请
登录
后使用快捷导航
没有帐号?
注册
帐号
自动登录
找回密码
密码
登录
注册
关闭
安全验证
安全提问(未设置请忽略)
母亲的名字
爷爷的名字
父亲出生的城市
你其中一位老师的名字
你个人计算机的型号
你最喜欢的餐馆名称
驾驶执照最后四位数字
注册新用户,开通自己的个人中心
我的中心
首页
新闻
博客
人才
会议
基金
论文
视频
小柯机器人
相册
Album
帮助
Help
科学网
›
标签
›
绘图
标签: 绘图
相关帖子
版块
作者
回复/查看
最后发表
没有相关内容
相关日志
matlab绘图输出eps文件及边框
trugle
2014-2-5 23:49
遥感数据处理中,重要一环就是结果展示和输出。 其中eps文件虽然在常用数据格式和打印数据格式中使用不在那么普遍,但是在学术文章撰写中,由于其对矢量数据的支持能力,与常规位图相比具有更好的展示效果,因此至今仍然在出版、著作中占有一席之地。 matlab作为重要的数字图像处理工具,提供了较为灵活的图像展示功能,并支持多种图像格式。 下面,总结了一种较为有效的带边框的eps文件输出方式 首先裁掉多余空白区域,并设置边框 imshow(rand(200,300).^.4, 'border', 'tight'); axis on; axis square; set(gca, 'linewidth', 2); 注意,这里最好不要设为小于1, 否则容易丢失右侧和底侧的边框 然后,就是eps文件输出了 saveas(figure(1), '.\***.eps', 'psc2'); ‘psc2’很重要,不要丢掉了。那么,存在多个figure的时候,在生成figure时,注意保存相应句柄就可以了。
个人分类:
Matlab点滴积累
|
8281 次阅读
|
0
个评论
R语言绘制没有刻度的坐标轴
Bearjazz
2013-12-13 09:42
个人分类:
我的研究
|
10049 次阅读
|
0
个评论
[转载]转载的资料 使用起来好找 MATLAB画曲线交点和曲面交线
luzeyuan
2013-11-20 08:54
下面列出了各类图形的交点和交线程序,在这里谢过上述原创作者! %直线与直线相交 function =pll(X1,Y1,X2,Y2) % 直线相交求交点 A1=Y1(1)-Y1(2); B1=X1(2)-X1(1); C1=Y1(2)*X1(1)-Y1(1)*X1(2); A2=Y2(1)-Y2(2); B2=X2(2)-X2(1); C2=Y2(2)*X2(1)-Y2(1)*X2(2); D=det( ); X=det( )/D; Y=det( )/D; 调用格式: x1= ;y1= ;x2= ;y2= ; =pll(x1,y1,x2,y2); plot(x1,y1,'r'); hold on plot(x2,y2,'b'); plot(x,y,'ko'); 直线与多条直线相交 xi= ;yi= ; plot(xi,yi);hold on x1= ;y1= ;line(x1,y1); x=zeros(size(xi)); y=x; for i=1:5-1 x2=xi( );y2=yi( ); =pll(x1,y1,x2,y2); plot(x,y,'ro') end %直线与曲线相交 x=-8:0.1:8;y=x; =meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R; contour(Z,3);hold on c=contour(Z,3); x= ;y= ; y=(y(2)-y(1))/(x(2)-x(1))*(x-x(1))+y(1);z= ; line(x,y,z);c=c'; X=c(:,1);Y=c(:,2); r0=abs(Y-(y(2)-y(1))/(x(2)-x(1))*(X-x(1))+y(1))=0.5; zz=0;yy=r0.*Y;xx=r0.*X; plot(xx(r0~=0),yy(r0~=0),'ro') %曲线与曲线相交 x=0:pi/400:2*pi; x=x'; y1=sin(pi*x);y2=cos(pi*x);plot(x,y1,x,y2);hold on r0=abs(y2-sin(pi*x))=0.02; yy=r0.*y1;xx=r0.*x;plot(xx(r0~=0),yy(r0~=0),'r.') %直线与曲面相交 x=-8:0.3:8;y=x; =meshgrid(x,y); Z=X.^2+Y.^2; mesh(X,Y,Z);hold on x= ;y= ;z= ;line(x,y,z); r0=(abs(Y-y(1)-(y(2)-y(1))/(x(2)-x(1))*(X-x(1)))=0.45)... (abs(Z-z(1)-(z(2)-z(1))/(x(2)-x(1))*(X-x(1)))0.45)... (abs(Y-y(1)-(y(2)-y(1))/(z(2)-z(1))*(Z-z(1)))=0.45); zz=r0.*Z;yy=r0.*Y;xx=r0.*X; plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'r*'); %平面和曲面相交 x=-8:0.1:8; y=x; =meshgrid(x,y); Z1=2*ones(size(X)); Z2=X.^2-Y.^2; mesh(X,Y,Z1); hold on mesh(X,Y,Z2); r0=(abs(Z1-Z2)=.65); zz=r0.*Z1;yy=r0.*Y;xx=r0.*X; plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*') clc disp('观察曲面后,按任意键画交线'); pause clf plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*'); %曲面与多个截平面相交 y=-10:0.5:10; z=y; =meshgrid(z,y); X=Z; X1=0*ones(size(Z)); X2=3*ones(size(Z)); X3=-3*ones(size(Z)); Z4=(X.^2-Y.^2)/10; mesh(X1,Y,Z);hold on mesh(X2,Y,Z) mesh(X3,Y,Z); mesh(X,Y,Z4); r1=(abs(X1-X)0.05); r2=(abs(X2-X)0.05); r3=(abs(X3-X)0.05); zz1=r1.*Z4;yy1=r1.*Y;xx1=r1.*X; zz2=r2.*Z4;yy2=r2.*Y;xx2=r2.*X; zz3=r3.*Z4;yy3=r3.*Y;xx3=r3.*X; plot3(xx1(r1==1),yy1(r1==1),zz1(r1==1),'k*'); plot3(xx2(r2==1),yy2(r2==1),zz2(r2==1),'k*'); plot3(xx3(r3==1),yy3(r3==1),zz3(r3==1),'k*'); colormap(hsv) disp('观察曲面后,按任意键画交线'); pause clf plot3(xx1(r1~=0),yy1(r1~=0),zz1(r1~=0),'k*');hold on plot3(xx2(r2~=0),yy2(r2~=0),zz2(r2~=0),'k*'); plot3(xx3(r3~=0),yy3(r3~=0),zz3(r3~=0),'k*'); %曲面与曲面相交 =meshgrid(-2:.1:2); z1=x.^2-2*y.^2; z2=x.^2+y.^2-5; mesh(x,y,z1); hold on mesh(x,y,z2); r0=(abs(z1-z2)=0.1); zz=r0.*z1;yy=r0.*y;xx=r0.*x; plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'k*') colormap(cool) hold off
4758 次阅读
|
0
个评论
布局页中的图形编辑之二:添加文本框、绘制箭头等
FlowJo
2013-4-22 11:51
布局页中的图形编辑之二:添加文本框、绘制箭头等 作者:蔡何青,FlowJo技术专员 在FlowJo的布局页里可以进行图形编辑,然后再导出高质量的用于发表文章的图片。为了使图片所表达的信息更直观,在导出图片之前,可能会需要对图片添加一些文本描述,绘制一些箭头或线条以说明图片之间的关联。这篇博文中将对这些操作进行介绍。 例子: 比较不同样本中NKG2C阳性群的百分比 编辑之前: 编辑之后: 操作步骤: 1. 顶端对齐: 1.1 按住键盘CTRL键,单击,将三张图片同时选中;到布局编辑器的“排齐”菜单栏选择“Tops” 2. 图形定义窗口: 双击图片,打开Graph Definition窗口 2.1 在Annotate选项卡中 2.1.1 去勾选ShowAnnotation:去除图片下方的Annotate注释 2.1.2 去勾选WithNames,勾选WithFrequencies:去除图片中所显示的细胞群的名称,只显示细胞群所占的百分比 2.1.3 在XAxis和YAxis中勾选HideLabel:去除图片自带的坐标轴的名称 操作前后,图片的差别如下图所示: 2.2 在Fonts选项卡中 将Graph中的字体大小选为18号,字体类型选为Bold进行加粗,字体颜色选为红色 3. 绘制线条或箭头 3.1 点击选中布局编辑器中的线条按钮,在布局页中绘制一条直线 3.2 双击已经绘制的直线,打开属性定义窗口 Arrow Style:选择箭头的类型,向前、向后或者是双箭头,本例中选择Forward Line Weight:选择线条的粗细,本例中选择的是Normal Line Style:选择线条的类型,实线、虚线等,本例中选择的是Solid Line Color:选择线条的严责,本例中为黑色 4. 添加文本框 4.1 点击选中布局编辑器中的文本框按钮,在布局页中绘制一个文本框 4.2 绘制完毕,软件自动打开文本框编辑器 4.3 在文本编辑栏中输入要添加的文本内容 4.4 在LineColor中将文本框的线条颜色选为白色,这样就不会显示文本框黑色的框架 4.5 根据需要,可以对字体的类型和文本框框架线条的类型进行选择 导出图片: 按照上述的操作步骤,便能得到本文中所示的编辑之后的图片;如何对图片进行导出,请参阅博文: 如何在FlowJo中导出图片, 生成图片报告及导出高质量可发表的图片
个人分类:
FlowJo使用
|
14059 次阅读
|
0
个评论
趣味AutoCAD 绘图(三)
mdymww
2012-4-11 19:40
趣味 AutoCAD 绘图 ( 三 ) 怎么用最简单方法绘制如下图? 分析: A ) AUTOCAD 绘图中使用 PLINE 命令时,可以直线与弧同时绘制; B )也可以采用透明命令( ′ CAL ); C )可以使用 pi( π ) 。 第一步 第二步 第三步 重复第二步多次。 此法最简单。
个人分类:
生活点滴
|
169 次阅读
|
0
个评论
[转载]Matlab二维图形的绘制
willzhang198
2012-3-28 20:43
转自: http://hi.baidu.com/lukespring/blog/item/3fa11516da355652f2de32ea.html 做了排版和部分修正。 绘图类型 plot:绘制二维图形 loglog:用全对数坐标绘图 semilogx:用半对数坐标(X)绘图 semilogy:用半对数坐标(Y)绘图 fill:绘制二维多边填充图形 polar:绘极坐标图 bar:画条形图 stem:画离散序列数据图 stairs:画阶梯图 errorbar:画误差条形图 hist:画直方图 fplot:画函数图 title:为图形加标题 xlabel:在X轴下做文本标记 ylabel:在Y轴下做文本标记 zlabel:在Z轴下做文本标记 text:文本注释 grid:对二维三维图形加格栅 绘制单根二维曲线 plot函数, 基本调用格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 例如: 在0≤x≤2pi区间内,绘制曲线:y=2e-0.5xcos(4πx ) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y) plot函数最简单的调用格式是只包含一个输入参数: plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。 p= ; plot(p) 绘制多根二维曲线 1.plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。 当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 2.含多个输入参数的plot函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn) (1) 当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 (2) 当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 例如: 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x= '; y= '; plot(x,y,x1,y1-1) 3.具有两个纵坐标标度的图形 在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为: plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。 例如: 用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2); 4.图形保持 hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。 例如: 采用图形保持,在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off 设置曲线样式 MATLAB提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“b-.”表示蓝色点划线,“y:d”表示黄色虚线并用菱形符标记数据点。当选项省略时,MATLAB规定,线型一律用实线,颜色将根据曲线的先后顺序依次。 要设置曲线样式可以在plot函数中加绘图选项,其调用格式为: plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n) 例如: 在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。 程序如下: x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); k=find(abs(y1-y2)1e-2); %查找y1与y2相等点(近似相等)的下标 x1=x(k); %取y1与y2相等点的x坐标 y3=0.2*exp(-0.5*x1).*cos(4*pi*x1); %求y1与y2值相等点的y坐标 plot(x,y1,x,y2,'k:',x1,y3,'bp'); 图形标注与坐标控制 1.图形标注 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…) 函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符,这样就可以在图形上添加希腊字母、数学符号及公式等内容。例如,text(0.3,0.5,‘sin({\omega}t+{\beta})’)将得到标注效果sin(ωt+β)。 例如: 在0≤x≤2pi区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。 程序如下: x=0:pi/100:2*pi; y1=2*exp(-0.5*x); y2=cos(4*pi*x); plot(x,y1,x,y2) title('x from 0 to 2{\pi}'); %加图形标题 xlabel('Variable X'); %加X轴说明 ylabel('Variable Y'); %加Y轴说明 text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置添加图形说明 text(2.5,1.1,'曲线y2=cos(4{\pi}x)'); legend(‘y1’,’y2’) %加图例 2.坐标控制 axis函数的调用格式为: axis( ) axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置。 axis off:取消坐标轴。 axis on:显示坐标轴。 例如: 给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。 给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换 在同一坐标中,可以绘制3个同心圆,并加坐标控制。 程序如下: t=0:0.01:2*pi; x=exp(i*t); y= '; plot(y) grid on; %加网格线 box on; %加坐标边框 axis equal %坐标轴采用等刻度 图形窗口的分割 subplot函数的调用格式为: subplot(m,n,p) 该函数将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。 例如: 在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。 程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); plot(x,y);title('sin(x)');axis ( ); subplot(2,2,2); plot(x,z);title('cos(x)');axis ( ); subplot(2,2,3); plot(x,t);title('tangent(x)');axis ( ); subplot(2,2,4); plot(x,ct);title('cotangent(x)');axis ( ); 其他二维图形 其他坐标系下的二维数据曲线图 1.对数坐标图形 MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,…) semilogy(x1,y1,选项1,x2,y2,选项2,…) loglog(x1,y1,选项1,x2,y2,选项2,…) 例 绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。 程序如下: x=0:0.1:10; y=10*x.*x; subplot(2,2,1);plot(x,y);title('plot(x,y)');grid on; subplot(2,2,2);semilogx(x,y);title('semilogx(x,y)');grid on; subplot(2,2,3);semilogy(x,y);title('semilogy(x,y)');grid on; subplot(2,2,4);loglog(x,y);title('loglog(x,y)');grid on; 2.极坐标图 polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。 例4-11 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,'-*'); 二维统计分析图 在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是: bar(x,y,选项):画条形图 stairs(x,y,选项): 画阶梯图 stem(x,y,选项):画离散序列数据图 例 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 程序如下: x=0:pi/10:2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,'g'); title('bar(x,y,''g'')');axis( ); subplot(2,2,2);stairs(x,y,'b'); title('stairs(x,y,''b'')');axis( ); subplot(2,2,3);stem(x,y,'k'); title('stem(x,y,''k'')');axis( ); subplot(2,2,4);fill(x,y,'y'); title('fill(x,y,''y'')');axis( ); ll(x1,y1,选项1,x2,y2,选项2,…):填充图形 MATLAB提供的统计分析绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。 例 绘制图形: (1) 某企业全年各季度的产值(单位:万元)分别为:2347,1827,2043,3025,试用饼图作统计分析。 (2) 绘制复数的相量图:7+2.9i、2-3i和-1.5-6i。 程序如下: subplot(1,2,1); pie( ); title('饼图'); legend('一季度','二季度','三季度','四季度'); subplot(1,2,2); compass( );
8286 次阅读
|
0
个评论
谈谈gnuplot(十一):enhanced 文本模式
热度
2
yusufma
2011-10-22 03:46
我们之前的图像里的 title 、 xlabel 等标签里用到的都是纯文本字符串,如果我们希望输出稍复杂一点的文字标签,例如字母加角标,我们可以使用 enhanced 文本模式。 gnuplot 里面好多 terminal 都支持 enhanced 模式,使用方法就是在 set terminal 的时候,在后面加上 enhanced 参数。 enhanced 模式里有一些表达特殊含义的字符,利用这些字符可以构成一些比较复杂的文字输出。这些特殊字符主要包括: ^ :表示后面的字符为上角标 _ :表示后面的字符为下角标 @ :表示后面的字符不占任何宽度 {"string"} :表示一段空白,空白的长度等于花括号内那段字符串所占宽度 ~ :表示后面的两个字符重叠打印(相当于打字机在同一位置打印两个字符);也可以在第二个字符前加上一个数字,表示第二个字符相对于第一个字符有一个竖直方向的移动,移动距离等于该数字乘以字符尺寸。 上面提到的“字符”,也可以是包含在花括号 {} 内的“字符串”。除了上面这些特殊标志,还可以临时改变字符(或字符串)的字体,方法是: {/字体名=字体大小 字符} 下面我们看一些例子: "a^x" "a_x" "a^b_{cd}" 这里的上下角标没有对齐,因为上标 b 需要占一定宽度 "a^@b_{cd}" 这里我们看到了 @ 的作用 "abc{de}fg" 这里 后面的字符没有显示,留出一段和这些字符同样宽度的空白 "~a{1.2\\_}" 注意这里的两个反斜杠。因为下横杠( _ )是一个特殊字符,需要在前面加反斜杠 \ 来表示它本来的意义,而反斜杠本身也是一个特殊字符,需要在它前面再加一个反斜杠。我们在第四讲里谈到过双引号和单引号的区别。如果我们在这里用单引号而不是双引号,那么只需要一个反斜杠就可以了。这里的 1.2 表示后面的字符( _ )向上移动 1.2 个字符大小的距离。 {/Symbol abc}abc 这里第一个花括号里的 abc 使用了 Symbol 字体,而后面括号外的 abc 使用的是默认字体。注意字体名称前的斜杠方向。这里我们看到, Symbol 字体里的英文字母对应显示的是希腊字母。 Symbol 字体里还包括了一些其它符号,下面是完整的 Symbol 字体列表: 上面图中显示的是 Symbol 字体对应的16进制代码 。例如上面例子中的希腊字母 αβχ ,对应的16进制代码分别为 61、62、63,转换为8进制代码就是 141、142、143。在 gnuplot 里,我们可以直接用字符的8进制代码表示这个字符,所以我们也可以用 {/Symbol \141\142\143} 来表示 αβχ。 根据上面的内容,下面是一个综合起来的例子: gnuplot set term wxt enhanced gnuplot set xlabel "X" gnuplot set ylabel "Y" gnuplot set xrange gnuplot set xtics 0,1,10 gnuplot unset key gnuplot set title "f(x) = {/Symbol=16 \326}~{x^@3}{1.1{/Symbol=16 \276}}{aa}函数图像" gnuplot plot sqrt(x**3) 虽然利用 enhanced 模式也能显示一些简单的数学表达式,但是对于稍微复杂一点的公式来说,显示效果无法令人满意。要在gnuplot里显示数学公式,终极方案还是要用 LaTeX。
个人分类:
开源软件
|
23547 次阅读
|
5
个评论
谈谈gnuplot(六):简单数据绘图
yusufma
2011-10-17 14:51
之前讲过了简单的函数绘图,而实际科研中更多用到的是数据绘图。 在讲如何用gnuplot进行数据绘图之前,我们先介绍一个gnuplot里最有用的命令: help 。 gnuplot内含一个非常有用的帮助系统。随着我们学习的命令越来越多,记住所有命令的用法不太现实,所以我们会更多的依赖这个帮助系统。例如,我们想知道 set xtics 命令的用法,只要在gnuplot里输入: gnuplot help set xtics 就能得到完整的 set xtics 用法及实例。 好了,下面我们讲数据绘图。首先介绍我们的数据文件。这是一个关于北京市一年中每月平均降水量的数据,我们的数据以纯文本方式储存在文件名为 datafile.dat 的文件中,文件全文如下: ### 文件开始 ### # 北京月平均降水量 (mm) # # 月份 降水量 # ============== 1 2.5 2 5.1 3 10.2 4 25.4 5 27.9 6 71.1 7 175.3 8 182.9 9 48.3 10 17.8 11 5.1 12 2.5 ### 文件结束 ### 数据分为两列,第一列为月份,第二列为降水量。以 # 符号开始的各行为注释,也就是说,这些行对绘图不构成任何影响。下面开始画图。 gnuplot set xlabel "月份" gnuplot set ylabel "降水量(毫米)" gnuplot set title "北京市月平均降水量" gnuplot unset key gnuplot set xrange gnuplot set xtics 1,1,12 gnuplot plot "datafile.dat" 这里我们看到,默认的数据作图是画出各数据点。如果我们希望得到数据连线呢?可以使用下面的命令: gnuplot plot "datafile.dat" with lines with 命令后面跟的是画图方式,这里使用的是 lines 方式,也就是把各个数据用直线连接起来。gnuplot大约支持三十种画图方式,默认为 points 方式,我们以后会选择一些常用的方式来介绍。 现在问题来了:如何既得到连线,又得到数据点呢?对了,用 with linespoints : gnuplot plot "datafile.dat" with linespoints 好了,我们已经有一个简单的数据图了。下次我们想办法让它看起来更漂亮一些。
个人分类:
开源软件
|
12356 次阅读
|
0
个评论
谈谈gnuplot(五):坐标取值范围及刻度
热度
2
yusufma
2011-10-16 16:05
我们从上一讲结束时的图像开始: gnuplot set samples 500 gnuplot set xlabel "X" gnuplot set ylabel "Y" gnuplot set title "sin(5*x) 函数图像" gnuplot unset key gnuplot plot sin(5*x) 这里默认的 x 取值范围是从 -10 到 10。我们现在希望 x 的取值范围从 -2π 到 2π,这样函数图像可以正好包括十个周期。横坐标取值范围由 xrange 参数控制。还记得gnuplot里面所有参数都由 set 命令控制吗?取值范围由方括号内的一对数表示,两个数之间用冒号隔开: gnuplot set xrange gnuplot replot (不要忘记,每一个和 x 坐标有关的参数,都对应有一个和 y 有关的参数,所以纵坐标的取值范围由 yrange 控制。) 现在横坐标取值范围已经符合我们的要求了,但是横轴上的刻度并不是我们想要的。我们不想要刻度出现在整数位置上,而是希望刻度为 π 的整倍数。另外,我们还希望两个主刻度之间 π/2 的位置有一个分刻度,分刻度只要有刻度就可以,没必要标出数字了。gnuplot里面,横轴主刻度和分刻度,分别用 xtics 和 mxtics 表示(m 表示 minor)。我们试试下面的命令: gnuplot set xtics pi gnuplot set mxtics 2 gnuplot replot 这里的命令表示:横轴主刻度间隔为 π,每两个主刻度之间被分刻度分为2份。这组命令得到的图像如下: 现在刻度间隔对了,但是显示的数字并不是我们想要的。我们希望显示字符 π,而不是小数3.14159。其实, set xtics 命令的形式并不是唯一的。我们试试下面的形式: gnuplot set xtics ("-2π" -2*pi, "" -1.5*pi 1, "-π" -pi, "" -0.5*pi 1, "0" 0, "" 0.5*pi 1, "π" pi, "" 1.5*pi 1, "2π" 2*pi) gnuplot replot 这里 set xtics 命令直接规定了每个刻度的位置和显示的字符。每一个刻度对应三个参数:显示字符、刻度位置、刻度等级。刻度等级为 0 时表示主刻度,等级为 1 时表示分刻度。对于主刻度(等级为 0 时),表示等级的参数也可以省略不写。各个刻度的参数之间用逗号隔开。从上面的例子我们还看出,显示字符可以为空,也就是只标刻度,不显示字符。这组命令得到的图像如下: 现在横轴坐标已经完全符合我们要求了,我们把纵轴坐标也调整一下,因为我们不需要这么细的划分纵轴刻度: gnuplot set ytics -1,0.5,1 gnuplot replot 这里又用了 set ytics 命令的另一种形式(再次提醒一下, xtics 和 ytics 语法是完全一样的):后面跟了逗号隔开的三个参数。这三个参数分别表示:最小主刻度、主刻度步长、最大主刻度。图像如下: 现在我们完成了对于坐标轴的一些微调,图像看起来更顺眼了。
个人分类:
开源软件
|
22720 次阅读
|
4
个评论
谈谈gnuplot(二):启动
热度
1
yusufma
2011-10-13 02:48
gnuplot是基于命令行的交互式绘图软件。打开一个终端,输入gnuplot,随着程序启动,会出现下面的信息: (如果是在Windows电脑上,双击gnuplot.exe后会自动打开一个命令行窗口) 这里包含gnuplot的版本、系统、版权等信息。最关键的是最后一条: Terminal type set to 'wxt' 什么是terminal?在gnuplot中, terminal 就是说你打算用什么方式输出图片。这里默认的 terminal 是 wxt ,也就是直接输出到电脑屏幕上。gnuplot支持七十多种 terminal ,没必要都记住。我们以后会挑主要的几种讲一下。 提示信息之后,是gnuplot的提示符: gnuplot 在提示符之后输入各种命令,就可以开始画图了。 如果要退出程序,只需要输入 quit 或者 exit 命令。
个人分类:
开源软件
|
6788 次阅读
|
1
个评论
用R高清绘图:分辨率600DPI
热度
3
zjlcas
2010-12-3 12:28
用R高清绘图600DPI 2016年2月1日修改 用tiff命令可以生成指定分辨率的tiff格式的图片,tiff一般很大, 所以一般都进行压缩, 常用如 lzw压缩. tiff(file = C:/test1.tiff, res = 600, width = 4800, height = 4800, compression = lzw) plot(1:22, pch = 1:22, cex = 1:3, col = 1:5) dev.off()
个人分类:
科研笔记
|
37543 次阅读
|
3
个评论
Matlab的基本操作和绘图
热度
2
supermac
2010-9-9 00:10
Matlab 绘制散点图 数据导入 1. 菜单 FileImportData ,支持 Excel 、 txt 等; 2. 在 Workspace 窗口中双击数据表名,在 Array Editor 中将数据复制进去即可。 绘图 1 将数据表的各列数值分别赋予变量 x 、 y 、 z 等,格式如下: x=sheetname(:,1), y=sheetname(:,2), z=sheetname(:,3); 2 用命令 plot(x,y,XXXX) 绘制图形,单引号中的符号表示点线的属性,如线形、颜色、点的形状等,若用双对数坐标画图则命令为 loglog(x,y) ; 3 在弹出的绘图界面中用菜单 ViewProperty Editor 编辑图形属性,如字体大小、数据点形状、横纵坐标名称、绘图区域颜色等; 4 绘图方法 2 :在数组编辑器上点击 Plot Selection 按钮,选择图形的类型即可; 5 绘图方法 3 :菜单 FileNewFigure 创建新的图形,在图形编辑器中 Figure Palette 面板点击 2D Axes ,点击右下角 Add Data 选择图表类型和坐标轴的数据源,度分布图将坐标轴由线形改为对数即可。 6 hold on/off 命令:叠绘命令,切换绘图的保持功能; 7 绘制双纵轴: 7.1 plotyy(x1,y1,x2,y2) :分别用左 / 右侧 y 轴表示两条曲线; 7.2 plotyy(x1,y1,x2,y2,FUN) : FUN 是字符串格式,用来指定绘图的函数名,可以由多个。 8 创建子图: subplot(m,n,p) :表示将绘图区域分为 m*n 个矩形块,分别创建坐标系,如 subplot(1,2,1);loglog(x,y); subplot(1,2,2);loglog(m,n); 表示在图形中创建两个子图,左右排列,分别绘制双对数坐标图,变量分别是 x 、 y 和 m 、 n 。 曲线拟合 1. 简单拟合:图形编辑器中菜单 ToolsBasic Fitting ,选择拟合函数,点击右下方的向右箭头可显示拟合曲线的方程; 2. 拟合工具: StartToolboxesCurve FittingCurve Fitting Tool ,上方的一排按钮中 Data 用于选择数据源, Fitting 用于拟合(先点 New Fit ,然后选择拟合曲线,如果没有的话可以选 Custom Equations ,点击右边的 New equation 按钮,在弹出的对话框中输入想要拟合的曲线方程,选好后点击 Apply 即可,下方的 Results 中显示拟合结果,包括公式和 R 2 ), Exclude 用于定制排除策略, Plotting 用于选择绘图的数据, Analysis 分析结果。 3. 绘制幂律度分布的拟合曲线,一般采用先把数据点绘制上去, hold on ,在 Excel 中求出拟合直线的方程,然后在 Matlab 中生成直线,并绘制到源数据上。 数组的创建 1. 直接输入:用空格、逗号或分号隔开,如 A1= ; 2. 步长生成法: x=a:anc:b ,即 a 为起始值, b 为终止值, inc 为间隔步长,如 A2=0:0.3:2=0,0.3,0.6,0,9,1.2,1.5,1.8; 3. 等间距线形生成法: x=linspace(a,b,n) ,即 a 到 b 之间得到 n 个线形采样点,如 A3=linspace(1,6,3)=1,3.5,6 ; 4. 等间距对数生成法: x=logspace(a,b,n) ,即 a 到 b 之间得到 n 个对数采样点,如 A4=logspace(1,6,6)=10,10 2 ,10 3 ,10 4 ,10 5 ,10 6 . 数组的访问 1. 索引直接访问:数组名(序号); 2. 访问一块数据:数组名(起始序号:终止序号); 3. 访问最后一部分数据:数组名(起始序号 :end ) ; 4. 构造访问数组:数组名(起始序号,间隔序号,终止序号); 5. 直接构造访问数组:数组名( )。
个人分类:
科研资料
|
19606 次阅读
|
6
个评论
Pajek的数据录入与参数计算
热度
11
supermac
2010-8-31 14:05
Pajek---- 数据录入 *Vertices N n “k” ---- 节点编号为 n ,名称为 k …… *Arcslist a b c ---- 弧从点 a 到点 b ,权重为 c *Edgeslist a b c ---- 边从点 a 到点 b ,权重为 c *Matrix 1.N 为节点总数,节点列表和名称均可省略; 2. 有向边列表和无向边列表,不可省略(这两种列表都有节点方式和连边方式); 3. 邻接矩阵方式,数字 1 表示连接, 0 表示无连接, 1 时表示权重; 4. 各行之间一定不能留空行,否则无法识别连边; 5. 数据之间用空格或 Tab 分开; 6 保存数据不必区分文件格式, txt 即可通用, ”.net” 、 ”.vgr” 、 ”.mat” 等格式是指当选择保存时所采用的格式; 7. 只有在采用矩阵格式才可以省略 *Arcslist*Edgeslist 。 Pajek---- 参数计算 度分布 利用 Pajek 中 Net/Partitions/Degree 菜单下的 In/Out/All 三个命令可分别对有向图的节点求其入度,出度和总的度。对于无向图,则只需用 All 一个命令即可。计算结果为一个 Patition 的文件,它按照每个节点的度值为网络中所有的节点分类,而类的标号就是节点的度。 两点间的最短距离 在 Pajek 中执行 Net/Paths between 2 vertices/One shortest 菜单命令,在弹出来的对话框中输入起始节点和终止节点,则可以得到这两个节点之间的最短路径。输出的结果为一个 partition 的文件。其中,若一个节点对应的类序号为 0 ,则表示最短路径不经过该节点,若为 1 ,则表示最短路径经过该节点。另外,利用 Net/Paths between 2 vertices/All shortest 菜单命令还可以得到两点之间所有的最短路径。 网络的平均路径长度与直径 利用 Pajek 中的 Net/Paths between 2 vertices/Diameter 的菜单命令,可以求得网络中距离最大的两个节点的距离,即网络直径 ( 该输出结果在报告窗口中输出 ) 。 执行NetParths Between 2 VerticesDistribution of DistancesFrom All Vertices 可以在报告窗口中看到平均路径长度和直径。 聚类系数 利用 Pajek 中的 Net/Vector/Clustering Coefficients/CC1 菜单命令,可对网络求其各个节点的聚类系数 CC 1 ,分别有两个输出结果,一个是 partition 文件,它表示网络中连接各个节点的邻居的边数。另一个为 vector 文件,它表示网络中各个节点的聚类系数。 Pajek使用说明
个人分类:
科研资料
|
24070 次阅读
|
22
个评论
NetDraw的数据录入格式
supermac
2010-8-31 10:55
NetDraw---- 绘图 DL 数据格式 1. 节点列表格式( Nodelist Format ) dl ---- 表示文件格式说明 n=50 ---- 节点数 format=nodelist ---- 列表格式说明 data: ---- 数据列表,冒号不能丢 1 4 7 10 ---- 表示节点 1 与节点 4/7/10 连接 3 19 21 35 7 ---- 节点之间用空格或 Tab 分隔 2 6 2. 连边列表格式( Edgelist Format ) dl ---- 表示文件格式说明 n=50 ---- 节点数 format=edgelist ---- 列表格式说明 data: ---- 数据列表,冒号不能丢 1 4 ---- 表示节点 1 与节点 4 连接 2 3 ---- 节点之间用空格或 Tab 分隔 2 6 3 5 注:节点可以不用数字编号,用字符,需要先在节点数 n=50 下方加一行 labels embedded ,然后 data 后面的信息用字符表示即可。 3. 矩阵列表格式( FullMatrix Format ) dl n=5 format=fullmatrix data: 0 0 1 0 0 ---- 用连接矩阵表示节点的连接情况 0 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 注:节点同样可以不用数字编号,用字符,除了需要先在节点数下方加一行 labels embedded 外,还需要在矩阵首行首列分别列出节点的字符名称。 另:NetDraw支持Pajek文件格式.net。 NetDraw使用说明 NetDraw使用说明 NetDraw使用说明
个人分类:
科研资料
|
17950 次阅读
|
0
个评论
[转载]circos
sciencewu
2010-6-23 14:32
ZT:http://liucheng.name/1274/ Categorized | 生物信息学 Tags | circos , gnuplot , matplotlib 汇总:关于用Perl、Python等画图的问题 Posted on 30 四月 2010 by 柳城 ,阅读 128 简洁版 繁體
修改头像
个人资料
认证
积分
用户组
隐私筛选
密码安全
我收到的评论/回复
我发表的评论/回复
查看@我
查看其他
积分 0, 距离下一级还需 积分
返回顶部