科学网

 找回密码
  注册

tag 标签: 绘图

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

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是基于命令行的交互式绘图软件。打开一个终端,输入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 简洁版 繁體