我正在研究R,我需要安装Cairo软件包.
install.packages("Cairo")
Run Code Online (Sandbox Code Playgroud)
规范 R版本2.15.0(2012-03-30)操作系统:红帽企业Linux服务器版本6.1(圣地亚哥)
我收到以下错误消息:
xlib-backend.c:34:74: fatal error: X11/Intrinsic.h: No such file or directory
compilation terminated.
make: *** [xlib-backend.o] Error 1
ERROR: compilation failed for package ‘Cairo’
* removing ‘/usr/local/lib64/R/library/Cairo’
The downloaded source packages are in
‘/tmp/RtmpqtvjPA/downloaded_packages’
Updating HTML index of packages in '.Library'
Making packages.html ... done
Warning message:
In install.packages("Cairo") :
installation of package ‘Cairo’ had non-zero exit status
Run Code Online (Sandbox Code Playgroud) 如果我尝试从 cairo 网站运行此示例,则会得到:
AttributeError: 'module' object has no attribute 'cairo_font_map_get_default'
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些包裹?(我在 Ubuntu 14.04 上)
但是,我试图找到我需要的开发包,我找到的唯一答案是this,它从 GTK2 堆栈中推荐了一些东西,但如果有的话,我对 GTK3 感兴趣,而不是 2。
这将清洁整个表面:
void surface_clean(Mpaint *mpaint)
{
mpaint->surface=cairo_image_surface_create_from_png("cxl.cache.png");
}
Run Code Online (Sandbox Code Playgroud)
我只想以、、和cairo_surface_t方式清洁该区域。xywidthheight
有没有这方面的接口?
我正在使用 python iGraph 进行网络可视化。当我尝试绘制图形时,我收到了他的错误消息:
>>> layout = g.layout("kk")
>>> plot(g, layout = layout)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.5-x86_64/egg/igraph/drawing/__init__.py", line 446, in plot
File "build/bdist.macosx-10.5-x86_64/egg/igraph/drawing/__init__.py", line 117, in __init__
File "build/bdist.macosx-10.5-x86_64/egg/igraph/drawing/utils.py", line 396, in __getattr__
TypeError: plotting not available
Run Code Online (Sandbox Code Playgroud)
我认为我没有正确安装 Cairo 或 PyCairo。
我不熟悉使用 Fink 或 MacPorts,因为我通常使用 Homebrew。
非常感谢您的任何帮助。
在GtkDrawingArea 的参考手册中,它说
\n\n\n\n\n当绘图区域第一次出现在屏幕上时,或者当它被另一个窗口覆盖然后又被覆盖时,通常会传递绘图信号。您还可以通过添加到绘图区域\xe2\x80\x99s窗口的\xe2\x80\x9cdamage区域\xe2\x80\x9d来强制暴露事件;
\ngtk_widget_queue_draw_area()并且gdk_window_invalidate_rect()都是同样好的方法来做到这一点。然后,您\xe2\x80\x99将获得无效区域的绘制信号。
那么我怎样才能在绘制信号的处理程序中获取无效区域呢?\n它是剪辑区域吗?
\n我尝试image-slice使用 Node js 分割成多个部分。
我尝试安装npm i image-to-slices, sudo port install cairo,npm i canvas但brew install pkg-config cairo pango libpng jpeg giflib仍然require node-canvas在服务器端显示错误 node.js
这是我尝试切片图像:
var imageToSlices = require('image-to-slices');
exports.sliceImage=(request, response)=>{
var lineXArray = [100, 200];
var lineYArray = [100, 200];
var source = './public/images/Bitmap001.png'; // width: 300, height: 300
imageToSlices(source, lineXArray, lineYArray, {
saveToDir: './public/images/bit001.png'
}, function() {
console.log('the source image has been sliced into 9 sections!');
});
}//sliceImage
Run Code Online (Sandbox Code Playgroud)
控制台输出错误: …
我可以在 pdf 中生成并保存 .pdf 中的 ggplot 图,包括半透明(alpha):
library(ggplot2)
library(cowplot)
p <- qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = 0.5)
save_plot("plot.pdf",p)
Run Code Online (Sandbox Code Playgroud)
该图形在我的笔记本电脑 (Mac) 中完美显示,既可以作为 pdf 中的单个图形,也可以嵌入到 Word 文档中。但是,多年来我痛苦地经历过,我的数字中的半透明通常不会显示在其他人的计算机上,通常是当他们看到它们嵌入在 Microsoft 办公文档中时。当我不得不在观众面前做一个演示时,这尤其痛苦,突然我在会议室电脑上的Powerpoint演示的数字不显示任何东西,只是一个空白的情节。如果我向期刊提交论文并且收到编辑的电子邮件,说我的数字在 Word 文档中没有显示任何内容,这也是有问题的。由于这些数字在我的 Mac 中看起来不错,我无法确定这些数字是否正确,
我尝试了一些我在网上找到的解决方法,例如:
save_plot("plot.pdf",p, useDingbats=F)
Run Code Online (Sandbox Code Playgroud)
或者
save_plot("plot.pdf",p, device = cairo_pdf, fallback_resolution = 1200
Run Code Online (Sandbox Code Playgroud)
但是我仍然收到来自合作者的电子邮件,说他们看不到这些数字,并且仍然在演示中遇到一些尴尬的时刻,因为数字没有显示任何内容,因此我无法表达自己的观点。
我到底如何才能在不丢失信息的情况下以 pdf 格式保存我的数字?在这一点上,我不知道这个问题是否与在 R 中构建图形的方式有关,或者与 Microsoft Office 处理具有半透明性的 pdf 图形的问题有关。事实是,我的研究网络中没有其他人遇到这些问题。
供参考
> capabilities()
jpeg png tiff tcltk X11 aqua http/ftp
TRUE TRUE TRUE TRUE TRUE TRUE TRUE
sockets libxml …Run Code Online (Sandbox Code Playgroud) 我想在gtk3中用cairo绘制一个散点图.首先,我在这里使用示例:http://zetcode.com/tutorials/cairographicstutorial/
他们成功编译gtk2但没有显示图像.它们不使用gtk3编译,但会出现以下错误:
example.c: In function ‘on_expose_event’:
example.c:17:31: error: ‘GtkWidget’ has no member named ‘window’
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助将不胜感激.
顺便说一句,如果有帮助,我正在使用ArchLinux进行写作.
我想在gtk + cairo绘图区域内绘制一些线条(实际上是正弦波),但我无法想出办法.所以我的代码首先定义了绘图区域,该绘图区域有一个函数回调函数,该函数将白色背景绘制到绘图区域本身......此时我想在每次START按钮之后开始绘制一段sin波.按下(按钮有一个回调绘图功能)....所以首先......有可能这样做吗?我错过了什么?谢谢.
#include <cairo.h>
#include <gtk/gtk.h>
int x = 0;
int x_old = 0;
float value = 0;
float value_old = 0;
GtkWidget *button = NULL;
GtkWidget *window = NULL;
GtkWidget *area = NULL;
GtkWidget *table = NULL;
static gboolean load_interface(GtkWidget *widget)
{
cairo_t *cr;
cr = gdk_cairo_create(area->window);
cairo_set_source_rgb(cr, 1, 1, 1);
cairo_rectangle(cr, 0, 0, 900, 400);
cairo_fill(cr);
}
void draw(GtkWidget *widget)
{
cairo_t *cr;
cr = gdk_cairo_create(widget->window);
x_old = x;
x = x + 15;
value_old = value; …Run Code Online (Sandbox Code Playgroud) 我正在使用librsvg将SVG文件呈现给Cairo上下文.然后我使用Pango"手动"在顶部渲染一些文本.
渲染SVG时,我得到Pango警告它无法加载字体:
"couldn't load font "'Calibri' Not-Rotated 16", falling back to "Sans Not-Rotated 16", expect ugly output."
之后通过Pango手动文本渲染完美无缺.我尝试了多个不同的字体系列,它们都可以正常渲染,没有任何警告.
我甚至浏览了librsvg源代码,看看它是如何使用Pango但我看不出与我正在做什么有任何重大差异.
我不知道如何继续调试这个问题,任何有关Pango如何在Windows下定位字体以及可能影响其查找能力的建议都非常感谢.
如果重要:
我从这里下载了所有需要的二进制文件:http://sourceforge.net/projects/ezwinports/files/