0%

cpgpap – 改变视图表面的大小

对应的C函数为

1
void cpgpap(float width, float aspect);

这个函数用于改变视图的大小到一个指定的宽度和纵横比的视图。获取一个比标准大小还小的视图总是可行的,
如果比标准大小大,则只适用于一些设备。
这个函数应该在PGBEG之后或者PGPAGE之前调用。
随后的图形将采用设置的属性,直到下一次调用PGPAP。

参数:

  • WIDTH (输入) : 视图图形的宽度(英寸计),如果 WIDTH=0.0,PGPAP 将获得最大与ASPECT参数一致的视图表面。
  • ASPECT (输入) : 视图表面的综合比 (height/width),ASPECT=1.0正方形, ASPECT<1.0水平型的矩形,ASPECT>1.0垂直型的矩形。

cpgopen – 打开一个图形设备

对应的C函数为

1
int cpgopen(const char *device);

为PGPLOT的输出打开一个图形设备。如果设备打开成功,图形将输出到该设备直到使用PGSLCT选择了其他的设备或者使用PGCLOS关闭了该设备。

PGOPEN的返回值应该加以辨别是否打开成功。例如:

1
ISTAT = PGOPEN('plot.ps/PS')

如果 (ISTAT .LE. 0 ) STOP

DEVICE 参数的值为一个字符串,取值如下所示:

  1. 完整的设备描述形式“device/type”或者“file/type”;其中的’type’为PGPLOT支持设备类型的一种。
  2. 单纯的设备描述形式’/type’
  3. 设备描述形式’/type’被省略时,使用环境变量定义好的PGPLOT_TYPE
  4. 空字符串 (“ ”);这种情况下,PGOPEN将使用设定好的环境变量PGPLOT_DEV。如果环境变量未定义使用’/NULL’
  5. 双引号加一个问号 (“?”);这种情况下将提示用户键入要输出的设备类型,也可以输入?来查看设备列表。
  6. 非空字符串但是第一个字符为问号的 (比如’?Device: ‘);这种情况下PGPLOT将给用户提示信息,不过前缀是?后面的字符串。

对于情况 (5)和 (6),设备的类型将由输入确定。
设备的类型是不区分大小写的(例如’/ps’和’/PS’是相同的)。

有效地DEVICE参数示例:

  1. ‘plot.ps/ps’, ‘dir/plot.ps/ps’, ‘“dir/plot.ps”/ps’, ‘user:[tjp.plots]plot.ps/PS’
  2. ‘/ps’ (PGPLOT默认为’PGPLOT.ps/ps’)
  3. ‘plot.ps’ (如果PGPLOT_TYPE定义为’ps’, PGPLOT将解释为’plot.ps/ps’)
  4. ‘ ‘ (取决于定义的PGPLOT_DEV)
  5. ‘? ‘
  6. ‘?Device specification for PGPLOT: ‘
    [这个函数是在5.1.0版本加入的,老程序用PGBEG替代。

返回值:

  • PGOPEN : 返回值(正值)将被PGSLCT使用。 如果返回0或者负值,将有错误信息输入到标准错误单元。

参数:

  • DEVICE (输入) : 设备描述符(参考上面的描述)

好看的字体

inconsolata

这个字体个人非常推崇,安装方法也很简单。

Fedora

1
sudo dnf install levien-inconsolata-fonts

Ubuntu

1
sudo apt-get install ttf-inconsolata

中文输入法

Fedora中安装中文输入法

安装中文输入法的过程如下:
1)安装输入法 yum install fcitx 安装完小企鹅输入法
2)安装支持包:yum install fcitx-table-chinese
3)【也可以去软件管理工具界面,手动安装 fedora开始菜单->computer->System Setting->Softwaer Manage->Get and Remove Software里面fcitx-table-chinese chinese table of FCITX】
4)logout
开始菜单->Applications->Settings->InputMethod Selector ->
双击Use FCITX,等LOGOUT按钮变亮,点击Logout。即将注销系统。
重新登录后,ctrl+space即可切换至中文输入法。

今天查看开发使用的机器,内存使用了接近90%,清理一下缓存,效果立竿见影,按如下顺序操作即可:

  1. 当前内存使用情况:free
  2. sync(一定要在第三部之前运行这个命令)
  3. echo 3 > /proc/sys/vm/drop_caches

cpgmove – 移动点(改变当前的点位置)

对应的C函数为

1
void cpgmove(float x, float y);

将当前点移动到另一个点(X,Y)的比较原生的函数。

参数:

  • X (输入) : 新点的x坐标
  • Y (输入) : 新点的y坐标

cpgmtxt – 在视口相关位置做文本标记

对应的C函数为

1
void cpgmtxt(const char *side, float disp, float coord, float fjust, const char *text);

在指定的地方标记文本。这个函数对于图形注解是很有用的。有个简略的使用PGLAB。文本使用当前的颜色索引值、线条宽度、字符高度和字符字体。

参数:

  • SIDE (输入) :为其中的一个字符’B’, ‘L’, ‘T’,或’R’分别代表Bottom(底端)、Left(左部)、Top(上方)和Right(右部)。 如果还包含“V”。例如’LV’或’RV’,那么字符串将垂直写。
  • DISP (输入) : 字符距离坐标轴的位置。负值在视口里面,正值在视口外面。
  • COORD (输入) : 字符在视图中的位置(整体范围在0-1之间)。
  • FJUST (输入) : 校正字符的对齐方式。如果FJUST = 0.0,字符的左端将对齐COORD; 如果 JUST = 0.5,字符的中间将对齐COORD; 如果 JUST = 1.0,字符的右端对齐COORD。其他介于0和1的值有对应的对齐位置,不过不是很有用。
    -TEXT (输入) : 输入的字符。结尾的空格将被忽略,起始的空格保留。

cpgtext

1
2
3
4
cpgtext(5.0, 5.0, "a Text String \\u5\\d");
cpgtext(5.0, 6.0, "\\faa text string");
cpgtext(5.0, 7.0, "\\faa text string");
cpgtext(5.0, 8.0, "\\faa text string");

  • PGADVANCE –非标准的PGPAGE
  • PGBEGIN –非标准的PGBEG
  • PGCURSE –非标准的PGCURS
  • PGLABEL –非标准的PGLAB
  • PGMTEXT –非标准的PGMTXT
  • PGNCURSE –非标准的PGNCUR
  • PGPAPER –非标准的PGPAP
  • PGPOINT –非标准的PGPT
  • PGPTEXT –非标准的PGPTXT
  • PGVPORT –非标准的PGSVP
  • PGVSIZE –非标准的PGVSIZ
  • PGVSTAND –非标准的PGVSTD
  • PGWINDOW –非标准的PGSWIN

cpgline – 绘制一个多线段的线条

对应的C函数为

1
void cpgline(int n, const float *xpts, const float *ypts);

绘制多线段的比较原生态的一个函数。多线段是指一条或多条连接的线段。多线段使用当前的颜色索引、线条类型和线条宽度属性。超出视口外的将被裁减掉。

参数:

  • N (输入) : 定义线条的点数,包含N-1条线段。N应该大于1(如果是1或者小于1),将没有线段显示
  • XPTS (输入) : 标记点的x坐标
  • YPTS (输入) : 标记点的y坐标

X和Y的维数要大于等于N.

cpglen – 计算字符串的长度(不同单位)

对应的C函数为

1
void cpglen(int units, const char *string, float *xl, float *yl);

计算出字符在x和y方向上的长度

输入

1
2
3
4
5
6
7
UNITS    :  0 => 标准化的设备坐标
1 => 返回英寸
2 => 返回毫米
3 => 返回绝对的设备坐标
4 => 返回世界坐标
5 => 返回当前视口大小的比例
STRING : 感兴趣的字符串

输出

1
2
XL       :  字符在x方向上的长度
YL : 字符在y方向上的长度