Plplot中line width 问题
Plplot延续了Pgplot的设计风格,线的宽度函数plwid(int width)只能用整型变量,不能精确控制线宽。用pscairo画出的曲线总是太粗,这是plplot一个很老的问题(issue),据说会在新版本中修正。
这里提供一个简单的修正办法。
下载plplot源程序,修改drivers/cairo.c中的void set_current_context( PLStream *pls )函数中以下几行
if ( pls->width < 1 ) { cairo_set_line_width( aStream->cairoContext, 1 ); } else { cairo_set_line_width( aStream->cairoContext, (double) pls->width); }
修改为
if ( pls->width < 1 ) { cairo_set_line_width( aStream->cairoContext, 0.2 ); } else { cairo_set_line_width( aStream->cairoContext, (double) pls->width*0.2 ); }
这样以0.2为单位来调整线宽。重新编译plplot,将新产生的cairo.so替代旧的文件。