我写了一些包含第三方二进制文件的自定义R代码.二进制文件的一个特性是生成带有图形和一些文本的LaTeX文档.我的代码的一个功能是解析该文档并返回该图的LaTeX代码.
目标是将我的R代码嵌入到Rnw文档中.运行Sweave时,我希望我的代码使用第三方二进制文件生成文档,然后提取图形的LaTeX代码并将其放入Sweave的.tex输出中.然后,当我针对该输出运行latex时,第三方二进制文件生成的数字应该在我的报告中自动且格式化地显示.
相反,LaTeX代码打印出来像这样:
[1] " %\\begin{landscape}"
[1] " \\begin{center}"
[1] "\\psset{linecolor=black,tnsep=2pt,tnheight=0cm,treesep=.3cm,levelsep=40pt,radius[1] "% \\def\\psedge#1#2{\\ncangle{#2}{#1}}"
[1] "% \\pstree[treemode=R]"
[1] " \\pstree{\\Tcircle{ 1 }~[tnpos=l]{\\shortstack[r]{nwsprec\\\\$\\leq$ 1.93}}}{"
Run Code Online (Sandbox Code Playgroud)
等等...
有没有办法让Sweave将R的输出视为LaTeX代码?
提前致谢.-Wesley
我非常喜欢Windows上的Qt Designer,因为我为Python应用程序制作了GUI(使用PyQt4),并尝试在我的Mac上安装它(在OSX 10.6.6下).
此时,我已经成功安装了SIP,Qt4和PyQt4.
PyQt二进制安装程序(适用于Windows)包含一个与PyQt一起使用的Qt Designer版本.在OSX上,没有二进制安装程序,只有源代码.所以没有Qt设计师.
Qt网站提供Qt Creator作为下载,但据我所知,它要求你用C/C++编写代码.
有没有办法让Qt Creator与PyQt一起工作?或者是否有另一个适用于Mac的PyQt GUI设计器?
谢谢!-Wesley
我试图复制Flavian Coelho的作品,链接在这里.他使用Cython和Gnu科学库(GSL)在生成随机数时大大加快了Python的速度.当我在Python中导入我编译的Cython代码(使用命令import cgibbs)时,我收到以下错误:
ImportError: dlopen(./cgibbs.so, 2): Symbol not found: _gsl_rng_mt19937
Referenced from: /Users/wesley/scratch/cython/cgibbs.so
Expected in: dynamic lookup
Run Code Online (Sandbox Code Playgroud)
您会注意到投诉是_gsl_rng_mt19937无法找到符号.我试图链接到的函数被调用gsl_rng_mt19937(没有前导下划线),这就是它在我的.pyx文件中出现的方式.我认为Cython通过添加领先的下划线以某种方式导致问题.
为了简化故障排除,我删除了代码并将其发布在下面.我的系统是:Mac OSX 10.7(Lion)运行Python 2.7.2(32位),gcc-4.0(我用它来编译32位格式的GSL库),GSL 1.15和Cython v0.15.1.
这是cgibbs.pyx的内容:
#declaring external GSL functions to be used
cdef extern from "math.h":
double sqrt(double)
cdef double Sqrt(double n):
return sqrt(n)
cdef extern from "gsl/gsl_rng.h":
ctypedef struct gsl_rng_type:
pass
ctypedef struct gsl_rng:
pass
gsl_rng_type *gsl_rng_mt19937
gsl_rng *gsl_rng_alloc(gsl_rng_type * T)
cdef extern from "gsl/gsl_randist.h":
double gamma "gsl_ran_gamma"(gsl_rng * …Run Code Online (Sandbox Code Playgroud) 我想在IronPython 2.7应用程序中使用R统计软件包进行一些数据处理.我找到了R.NET程序集,这应该可以实现.问题是IronPython拒绝加载R.NET程序集.
代码:
import clr
clr.AddReference("R.NET")
Run Code Online (Sandbox Code Playgroud)
生产:
System.IO.IOException: could not add reference to assembly R.NET
Run Code Online (Sandbox Code Playgroud)
程序集位于一个名为的文件中R.NET.dll,该文件存储在我调用的同一文件夹中ipy.exe.我已检查该文件夹已打开sys.path.我尝试过像clr.AddReference("R.NET.dll")和的变化clr.AddReferenceToFile("R.NET.dll").没有成功.
问题可能在于.程序集名称中有一个dot()吗?我该如何解决这个问题?
FWIW我使用的是Windows 7,R 2.13.0,IronPython 2.7,.NET框架的v4.0和R.NET 1.4.我可以从Visual C#Express IDE(在.NET 4.0下)成功添加对R.NET的引用,并从R.NET主页重现这些示例.
提前致谢!
我编写了一个 IronPython 包来进行一些数据处理,现在我将它包装在一个 C# 应用程序中。应用程序的部分功能是保存项目的状态,然后再恢复保存的状态。
我正在使用pickleIronPython 中的模块从我的自定义包中保存一个类的对象。在我用 C# 进行包装之前,这没有问题:我使用该pickle.dump()函数将对象序列化为文件。现在我想使用的pickle.dumps()功能序列化对象的字符串,然后将字符串传递给一个C#对象和序列化THAT对象有XmlSerializer。
序列化似乎有效,但反序列化失败了:C# 获取反序列化的字符串并将其传递给 IronPython,后者应该能够使用该pickle.loads()函数重构原始对象,但会引发此错误:
System.Collections.Generic.KeyNotFoundException {"ô"}
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?我有两个理论:
也许 IronPython 和 C# 之间或 C#、IronPython 之间的字符串编码存在差异,以及pickle模块所期望的内容?
首先不是整个字符串都被序列化,所以我只是把废话传递给 pickle.loads()
我的证据使我得出这些理论:
错误消息 (ô) 中缺少的键看起来像一些 unicode-parsed-as-ASCII-text。
如果我中断执行(在 Visual Studio 2010 的调试模式下)并在将字符串传递给 IronPython 进行解开之前查看该字符串,我所看到的长度不足以表示整个对象。但它可能刚刚达到 Visual Studio 调试器将显示的限制。
提前致谢!
我创建了一个使用 MicrosoftDataVisualization.Charting.Chart控件显示图表的表单(我使用 .NET 框架的第 4 版)。我还在图表上绘制了一些注释,为了找到它们,我需要了解图表轴。
编码
myChart.ChartAreas[0].AxisX.ValueToPixelPosition(location)
Run Code Online (Sandbox Code Playgroud)
给我一个NullReferenceException。图表绝对是实例化的,我可以设置的属性AxisX- 例如, myChart.ChartAreas[0].AxisX.Maximum = 1工作正常。
深入研究异常消息,看起来问题出在GetLinearPosition方法上,这是Chart控件内部的东西:
at System.Windows.Forms.DataVisualization.Charting.Axis.GetLinearPosition(Double axisValue)
at System.Windows.Forms.DataVisualization.Charting.Axis.GetPosition(Double axisValue)
at System.Windows.Forms.DataVisualization.Charting.Axis.ValueToPixelPosition(Double axisValue)
Run Code Online (Sandbox Code Playgroud)
有没有人有任何见解让我开始解决这个问题?提前致谢!