我有两个文件:
MyModule.py MyNotebook.ipynb
我正在使用最新的 Jupyter Notebook 和最新的 Python。我的笔记本中有两个代码单元。
1号牢房
import some stuff
Run some code
(Keep everything in the environment takes about five minutes to run this cell).
Run Code Online (Sandbox Code Playgroud)
2号牢房
import MyModule
Execute code from MyModule
Run Code Online (Sandbox Code Playgroud)
我想在 MyModule.py 中进行代码更改并重新运行Cell #2,但不重新启动内核(Cell #1做了相当多的工作,我不想每次都重新运行)。如果我只是运行第二个单元格,对 MyModule.py 所做的更改不会传播。我做了一些挖掘,并尝试使用 importlib.reload。Cell #2的实际代码:
from Nash.IOEngineNash import *
import importlib
importlib.reload(Nash.IOEngineNash)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不太有效。如何将 MyModule.py(或实际上是 Nash/IOEngineNash.py)中的这些更改推送到我的笔记本中,而无需重新启动内核并从头开始运行?
我正在尝试使用 rpy2 (3.5.7) 在一些 Python (3.10) 软件中实现 R 代码。我想知道在尝试任何复杂的事情之前我是否可以让 rpy2 工作。这是一个“现成的”执行,使用文档简介中最早的示例之一。我从 PyCharm IDE 内部运行它。文档中没有提及执行任何先决条件。
这个简单的代码有点麻烦。它是使用 DearPyGUI 包在事件调用(单击按钮)中执行的。
这是 rpy2 代码:
import rpy2.robjects as objects
print(robjects.r)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会抛出:
...
raise NotImplementedError(_missingconverter_msg)
NotImplementedError:
Conversion rules for `rpy2.robjects` appear to be missing. Those
rules are in a Python contextvars.ContextVar. This could be caused
by multithreading code not passing context to the thread.
Run Code Online (Sandbox Code Playgroud)
这是该错误的一个工作示例:
import dearpygui.dearpygui as dpg
import rpy2.robjects as robjects
def testFunction():
print(robjects.r)
dpg.create_context()
dpg.create_viewport()
dpg.setup_dearpygui()
with dpg.window(label="Example Window"):
dpg.add_text("Hello world")
dpg.add_button(label="Save", callback=testFunction) …Run Code Online (Sandbox Code Playgroud) 我非常感谢R的帮助。我想绘制一个网格数据的数据框(例如沿着对角线从左上方到右下方)。我已经看过很多使用ggplot2的示例,但是,我只是缺乏R操纵数据结构所必需的经验。我已经使用LISP和Java编程多年了,但我的头无法绕过R :-(
数据如下所示:
tension cluster migraineNoAura migraineAura
tension NA 1.5 6.960453e+00 3.596953
cluster 1.943113e+08 NA NA NA
migraineNoAura 8.462798e+00 NA NA 7.499999
migraineAura 2.833333e+00 NA 7.148313e+07 NA
Run Code Online (Sandbox Code Playgroud)
这只是一个很小的子集,它是60x60的数据帧。注意NAs。
我希望有一个60x60的网格,用值着色,并使用数据框中的名称标记x和y。
尽管我冒着重复问题的风险,但我还没有找到我的配置的解决方案。
我正在尝试将 rJava 加载到 RStudio 中。
我使用的是最新的 Mac OS x,Rstudio 的版本只有几个月大,而且我刚刚安装了 JDK x64 12.0.1 rJava 的版本是 0.9-11
执行时:
library(rJava)
Run Code Online (Sandbox Code Playgroud)
我遇到了通常的情况:
错误:“rJava”的包或命名空间加载失败:“rJava”的 loadNamespace() 中的 .onLoad 失败,详细信息:调用:dyn.load(file, DLLpath = DLLpath, ...) 错误:无法加载共享对象“ /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so': dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava .so, 6): 库未加载:/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/server/libjvm.dylib 引用自:/Library/Frameworks/R.framework/Versions/ 3.5/Resources/library/rJava/libs/rJava.so 原因:找不到图片
我试过将我的 Java 主路径设置为:
Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home')
Run Code Online (Sandbox Code Playgroud)
但这没有任何区别。
我显然错过了某处的 rJava 说明,其中列出了如何在所有计算机设置上安装该软件包。我很感激一些帮助。
编辑#1
按照下面评论中提供的链接,我设法在 RStudio 中通过 rJava 运行了最新版本的 Java JDK。文档“R、Java、rJava 和 macOS 的冒险”并不完整,无法即用。你可能最终会为了让它工作而进行黑客攻击。
我需要 rJava 来运行 venneuler,不幸的是,这在使用最新的 Oracle JDK 版本 12 时不起作用:
警告:最初的 Java 12 版本已经破坏了 JNI 支持并且不起作用。使用稳定的 Java 11(如果可用,请注意 12u)。错误:在 rJava 引导期间发生 Java 异常 - …
我忘记了一些非常基本的东西,这可以解释为什么我在 y 轴的 log10 变换后看到非常膨胀的 y 值。
我有以下堆叠的 ggplot + geom_histogram。
ggTherapy <- ggplot(genderTherapyDF, aes(freq, fill=name)) +
geom_histogram(data=genderTherapyDF, binwidth = 1, alpha=0.5, color="black") + theme_bw() +
theme(legend.position="none", axis.title = element_text(size=14), legend.text = element_text(size=14), axis.text.y = element_text(size=12, angle=45), axis.text.x = element_text(size=12), legend.background = element_rect(fill="transparent")) +
ylab("No. of patients") + xlab("Events") + labs(fill="") + ggtitle("Therapy")
Run Code Online (Sandbox Code Playgroud)
y 值是真实的,正是我所期望的。然而,它是如此倾斜,以至于肉眼看来,我发现这非常令人不满意。我宁愿看到一个转变的情节。
我尝试对 x 进行变换,很快就意识到沿分箱轴进行变换非常难以解释。所以我变换了 y 轴上的频率:
ggTherapy <- ggplot(genderTherapyDF, aes(freq, fill=name)) +
geom_histogram(data=genderTherapyDF, binwidth = 1, alpha=0.5, color="black") + theme_bw() +
theme(legend.position="none", axis.title = element_text(size=14), legend.text …Run Code Online (Sandbox Code Playgroud)