我在安装在节点中安装canvas模块时遇到问题.它似乎与cairo有关我收到此错误...
npm http GET https://registry.npmjs.org/canvas
npm http 304 https://registry.npmjs.org/canvas
npm http GET https://registry.npmjs.org/nan
npm http 304 https://registry.npmjs.org/nan
> canvas@1.1.3 install /Users/plimb/Desktop/motion-therapy/node_modules/canvas
> node-gyp rebuild
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
gyp: Call to './util/has_cairo_freetype.sh' returned exit status 0. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! …Run Code Online (Sandbox Code Playgroud) 如何转换的svg到png,在Python?我正在存储svg一个实例StringIO.我应该使用pyCairo库吗?我该如何编写代码?
我正在努力解决以下问题.我需要生成由一组图表组成的报告.除了一个之外,所有这些图表都是使用Matplotlib默认后端(TkAgg)制作的.需要使用开罗后端制作一张图表,原因是我正在绘制igraph图,并且只能使用Cairo绘制.
问题是我不能动态改变后端,例如以下方法不起作用:(
matplotlib.pyplot.switch_backend('cairo.png')
我知道switch_backend功能是实验性的)
我也尝试过,matplotlib.use("cairo.png")但这会导致导入问题,因为matplotlib.use("cairo.png")语句应该在导入之前出现matplotlib.pyplot.但是在剧本的生命历程中我需要两个不同的后端.
所以我的问题是有人有一个代码片段,显示如何在Matplotlib中切换后端?
非常感谢!
更新:我编写了一个加载matplotlib的片段,显示默认后端,卸载matplotlib,重新加载它并更改后端:
import matplotlib
import matplotlib.pyplot as plt
import sys
print matplotlib.pyplot.get_backend()
modules = []
for module in sys.modules:
if module.startswith('matplotlib'):
modules.append(module)
for module in modules:
sys.modules.pop(module)
import matplotlib
matplotlib.use("cairo.png")
import matplotlib.pyplot as plt
print matplotlib.pyplot.get_backend()
Run Code Online (Sandbox Code Playgroud)
但这真的是这样做的吗?
更新2:我昨天有一些严重的大脑冻结......简单而明显的解决方案是将开罗后端用于所有图表而不是切换后端:)
更新3:实际上,它仍然是一个问题所以谁知道如何动态切换matplotlib后端....请发布你的答案.
我需要获取matplotlib图的输出并将其转换为我可以在激光切割机上使用的SVG路径.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,100,0.00001)
y = x*np.sin(2*pi*x)
plt.plot(y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
例如,下面您会看到一个波形.我希望能够将此波形输出或保存为SVG路径,以后我可以在Adobe Illustrator等程序中使用该路径.
我知道一个名为"Cairo"的SVG库,matplotlib可以使用(matplotlib.use('Cairo')),但是我不清楚这会让我访问我需要的SVG路径,即使matplotlib现在将使用Cairo来生成绘图.

我确实有cairo在我的系统上工作,并且可以成功绘制一个由SVG路径组成的示例,我确实可以在Illustrator中编辑它,但是我没有办法将上面的等式转换为SVG路径.
import cairo
from cairo import SVGSurface, Context, Matrix
s = SVGSurface('example1.svg', WIDTH, HEIGHT)
c = Context(s)
# Transform to normal cartesian coordinate system
m = Matrix(yy=-1, y0=HEIGHT)
c.transform(m)
# Set a background color
c.save()
c.set_source_rgb(0.3, 0.3, 1.0)
c.paint()
c.restore()
# Draw some lines
c.move_to(0, 0)
c.line_to(2 * 72, 2* 72)
c.line_to(3 * 72, 1 * 72)
c.line_to(4 …Run Code Online (Sandbox Code Playgroud) 当我运行时出现以下错误shiny:
Error: Graphics API version mismatch
Listening on http://127.0.0.1:3774
Warning: Error in Cairo: Graphics API version mismatch
[No stack trace available]
Run Code Online (Sandbox Code Playgroud)
知道如何解决它。
我的会话信息如下:
sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] …Run Code Online (Sandbox Code Playgroud) 我在启动使用Pango库的任何内容时遇到此错误.我正在使用Kubuntu 9.10.我已经在libgtk*libcairo*libpango*和fontconfig上完成了'sudo apt-get --reinstall install',没有运气.
有人能指出我正确的方向吗?谢谢.
我正在编写一个使用Cairo图形库输出PDF文件的CAD应用程序.许多单元测试不需要实际生成PDF文件,例如计算对象的预期边界框.但是,我想确保在更改代码后生成的PDF文件"看起来"正确.有没有自动化的方法来做到这一点?我怎样才能尽可能自动化?我是否需要目视检查每个生成的PDF?如何在不拔头发的情况下解决这个问题?
我今天下午花了几个小时试图找到一个在Windows上安装PyCairo的简单教程.
开罗项目本身不维护Windows二进制文件,它们必须在其他地方下载(例如http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/).
由于MSVC显然不是PyCairo支持的编译器(尽管源补丁很简单),因此该过程也变得更加复杂.看到这个错误报告:
https://www.libreoffice.org/bugzilla/show_bug.cgi?id=22940
任何人都可以推荐在Windows上安装PyCairo的教程吗?
我正在使用一些R代码生成许多图像作为png文件; 但是,一个Rplots.pdf文件继续在工作目录中生成,有没有办法防止这种情况发生?
library(Cairo)
CairoPNG(file = "graphs.png")
nf <- layout(matrix(c(1:8), 2, 4, byrow=T), c(1, 1), c(1, 1, 1, 1), TRUE)
for (k in 1:num.k) {
plotMatrix(connect.matrix.ordered[k,,], log = F, main = paste("k=", k.vector[k]), sub = paste("Cophenetic coef.=", rho[k]), ylab = "samples", xlab ="samples")
}
y.range <- c(1 - 2*(1 - min(rho)), 1)
plot(k.vector, rho, main ="Cophenetic Coefficient", xlim=c(k.init, k.final), ylim=y.range, xlab = "k", ylab="Cophenetic correlation", type = "n")
lines(k.vector, rho, type = "l", col = "black")
points(k.vector, rho, pch=22, …Run Code Online (Sandbox Code Playgroud) 我对上面列出的库的关系有点困惑,这是我的想法:
如果这是正确的,Clutter有一天会取代GTK +吗?
和...
如果你认为有一个更好的地方可以提出这个问题,或者我应该先读一些书,请告诉我!我是兴趣的自学编程.