0%

vim出错warning setlocale LC_CTYPE cannot change locale

在终端命令行下面,为了放置出现乱码,将LANG设置为en,不过在vim的时候却出现了如下提示信息:

1
warning: setlocale: LC_CTYPE: cannot change locale (en)

估计就是语系的问题吧。

解决方法:

在bashrc中将设置的LANG的语句注释就正常了。

关于PGPLOT的翻译

第一章 介绍

1.1 PGPLOT简介

1.2 PGPLOT安装

1.3 PGPLOT手册简介安装

1.4 PGPLOT图像设备

1.5 PGPLOT环境变量

第二章 PGPLOT的简单使用

2.0 PGPLOT的简单使用

2.1 PGPLOT的简单使用简介

2.2 PGPLOT的一个示例程序

2.3 PGPLOT的数据初始化

2.4 PGPLOT 开始使用

2.5 PGPLOT 绘图比例和坐标轴

2.6 PGPLOT 标记坐标轴

2.7 PGPLOT 绘制图形标记

2.8 PGPLOT 绘制线

2.9 PGPLOT 结束绘图

2.10 PGPLOT 编译和运行

第三章 窗口和视图

3.1 PGPLOT的窗口和视图

3.2 PGPLOT的视图选择

3.3 PGPLOT的视图选择

3.4 PGPLOT的窗口特性

3.5 PGPLOT的窗口特性

3.6 PGPLOT 集大成函数PGENV

第四章 元素

4.1 PGPLOT的基元简介

4.2 PGPLOT的基元剪裁

4.3 PGPLOT的基元线条

4.4 PGPLOT的基元图标记

4.5 PGPLOT的基元文字

4.6 PGPLOT的基元区域填充

第五章 属性

5.1 PGPLOT的属性简介

5.2 PGPLOT的属性简介 颜色索引

5.3 PGPLOT的属性简介 颜色显示

5.4 PGPLOT的属性简介 线条类型

5.5 PGPLOT的属性简介 线条宽度

5.6 PGPLOT的属性简介 字符高度

5.7 PGPLOT的属性简介 字符字体

5.8 PGPLOT的属性简介 文字背景

5.9 PGPLOT的属性简介 填充类型

5.10 PGPLOT的属性简介 获取属性

5.11 PGPLOT的属性保存与复原

第六章 高级函数

6.1 PGPLOT的高级应用

6.2 PGPLOT的高级应用 XY绘图

6.3 PGPLOT的高级应用 直方图

6.4 PGPLOT的高级应用 两个变量的函数

第七章 图形交互

7.1 PGPLOT图形交互 简介

7.2 PGPLOT图形交互 光标

7.3 PGPLOT图形交互 使用光标

7.4 PGPLOT图形交互 缓冲

虽然只是自己的随笔,随便写写,还是献给我亲爱的父母和可爱的女朋友WXM同学。

序言

本心得手册为PGPLOT的C语言编程中文手册,为广大的中国PGPLOT fans而作。

由于最近有个项目要用到PGPLOT,就花了几天的时间来熟悉这个天文界极为常见的图库,后面因为在网上没有找到关于C-bind的文章,就索性大概写了一下心得(由于正常工作时间不可能全部花在这个上面,所以时间就比较紧促,排版方面也是很草草了了~)。

最后我会附上PGPLOT的manual原版,我没有纯粹的来翻译这本手册,只是大概按照自己的学习步骤,随便写了写,因为对中英文的计算机术语没有较深涉入,所以会有些术语不是很标准,希望读到的XDJM多多的提意见。

在c语言中一般都要加上c前缀,比如PGBOX在c语言中调用为cpgbox。有些函数比如PGWINDOW有相同含义的PGSWIN,在C语言中调用cpgswin即可。

对了,本文PGPLOT的操作平台为Linux/MacOSX系统。

好友cosmancosman.leo@gmail.com(全能牛人)前一段时间用python调用PGPLOT做出了一个天文数据处理的软件,如果有PGPLOT和python的接口问题,可以咨询他。

大部分文档写于2011-06-18~2011-07-18

PGBAND – 读取有锚定点的光标位置

对应的C函数为

1
int cpgband(int mode, int posn, float xref, float yref, float *x,  float *y, char *ch_scalar);

用户读取光标位置和字符类型。位置返回值为世界坐标。如果POSN=1,PGBAND 指出光标的位置,并且允许用户使用鼠标或者方向键移动光标。在确定光标位置后,用户可以输入键盘上的一个字符;PGBAND将返回这个字符和新的光标位置。

一些交互设备提供了一些光标类型的可选项,一般而言都是较细的线条,但在绘制这个的时候,不会擦除以前的绘图。

下面的关于MODE的选项也和锚定点XREF,YREF有关。对于设备不支持光标类型的,默认MODE=0.

– 如果 MODE=0, 锚定点将被忽略,类似PGCURS.
– 如果 MODE=1, 从锚定点到光标位置绘制一个直线线条
– 如果 MODE=2, 从锚定点(左下角)到光标位置(右上角)绘制一个中空的矩形。当然矩形的边缘为平行或者垂直的。
– 如果 MODE=3, 绘制两条扩展并横跨显示宽度的水平线,其中一条通过锚定点,另一条通过光标位置。这通常用于选择一个已知的Y轴范围。
– 如果 MODE=4, 绘制两条扩展并横跨显示宽度的垂直线,其中一条通过锚定点,另一条通过光标位置。这通常用于选择一个已知的X轴范围。
– 如果 MODE=5, 只绘制一条水平线条
– 如果 MODE=6, 只绘制一条水平线条
– 如果 MODE=7, 以光标为中心绘制一个十字交叉线

返回值:

1
PGBAND          : 成功返回1;无光标或失败返回0

参数:

1
2
3
4
5
6
7
MODE   (输入)  : 显示方式 (从0到7:上面有描述).
POSN (输入) : 如果POSN=1, PGBAND 将把光标放在点(X,Y);如果POSN=0,光标将被放置在当前的位置
XREF (输入) : 锚定点的x坐标
YREF (输入) : 锚定点的y坐标
X (输入/输出) : 光标的x坐标
Y (输入/输出) : 光标的y坐标
CH (输出) : 用户输入的字符值,如果没有光标或者出现错误,返回’\0’

cpgbeg – 打开一个图形设备

对应的C函数为

1
int cpgbeg(int unit, const char *file, int nxsub, int nysub);

新的程序最好用PGOPEN而不是PGBEG。PGOPEN会保留现存程序的兼容性。PGBEG不像PGOPEN,它将关闭打开的任何图形设备,所以对于它不能被用于并行的打开设备。

PGBEG 为随后的绘图打开一个图形设备或者一个文件。在调用其他子程序之前,都必须使用PGBEG或PGOPEN打开一个设备。

返回值:

PGBEG : 返回1成功,其他失败并在标准错误单元中显示错误信息。

参数:

  • UNIT (输入) : 0(惯例)
  • FILE (输入) : 输出设备或文件名,参考PGOPEN
  • NXSUB (输入) : 视图面细分的X轴(横向)个数
  • NYSUB (输入) : 视图面细分的Y轴(纵向)个数

PGPLOT将在屏幕上显示NXSUB * NYSUB个图像。如果有N个细分视图的话,PGPAGE 将移动到下一个子视图,而不是下一个物理页。如果NXSUB > 0, PGPLOT将横向排列,如果 NXSUB <0, PGPLOT将纵向排列。

如果const char *file,那么输出为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Graphics device/type (? to see list, default /Xserve): ?
PGPLOT v5.2.2 Copyright 1997 California Institute of Technology
Interactive devices:
/XWINDOW (X window window@node:display.screen/xw)
/XSERVE (A /XWINDOW window that persists for re-use)
Non-interactive file formats:
/GIF (Graphics Interchange Format file, landscape orientation)
/VGIF (Graphics Interchange Format file, portrait orientation)
/LATEX (LaTeX picture environment)
/NULL (Null device, no output)
/PNG (Portable Network Graphics file)
/TPNG (Portable Network Graphics file - transparent background)
/PS (PostScript file, landscape orientation)
/VPS (PostScript file, portrait orientation)
/CPS (Colour PostScript file, landscape orientation)
/VCPS (Colour PostScript file, portrait orientation)
Graphics device/type (? to see list, default /Xserve):