我想在X,Y轴上使用非数字开发线框,但在Z轴上使用数字.
# mydata
set.seed(123)
yv <- rnorm(20, 10, 3)
gen <- rep(paste("G", 1:5, sep= ""), 4)
env <- c(rep(c("CA","MN","SD", "WI"), each = 5))
mdf <- data.frame(yv, gen, env)
Run Code Online (Sandbox Code Playgroud)
我试过用格子:
require(lattice)
wireframe(yv,gen, env, data = mdf)
Error in UseMethod("wireframe") :
no applicable method for 'wireframe' applied to
an object of class "c('double', 'numeric')"
Run Code Online (Sandbox Code Playgroud)
任何建议赞赏.
我的目标是使用共享相同颜色键的4个或更多个别图来构建一个水平图(来自晶格包).虽然使用函数似乎相对简单,但我还是找不到使用数据矩阵的解决方案.仅使用一个矩阵的工作级别图的示例:
d <- replicate(10,rnorm(10))
levelplot(d)
Run Code Online (Sandbox Code Playgroud)
我找到了使用print和split的部分解决方案,以在同一个屏幕上显示所有4个关卡图,但这些要求我要么关闭colorkey,要么在每个绘图上显示它.两种方案都不完全令人满意.
如果我在levelplot中使用layout-option,就像这样:
levelplot(d, layout=c(2,2))
Run Code Online (Sandbox Code Playgroud)
,我得到了所需的布局,有一个大的colorkey,main和xlab/ylab,但只有一个levelplot打印.
我一直试图构建一个能产生所需结果的公式,但我担心我对数据帧,数组和矩阵的理解还不够深入.如果有人知道有效的解决方案,我将非常感激.我想象的是(不工作代码)的东西:
d1 <- replicate(10,rnorm(10))
d2 <- replicate(10,rnorm(10))
d3 <- replicate(10,rnorm(10))
d4 <- replicate(10,rnorm(10))
d <- list(d1,d2,d3,d4)
di <- c(1,2,3,4)
levelplot(x ~ y | di, data = d, layout=c(2,2))
Run Code Online (Sandbox Code Playgroud)
NB!避免使用矩阵不是一种选择.其中一些是从原始文本文件中获得的.
先感谢您,
-J.P
我正在尝试绘制一堆薄板样条响应曲面,用于与两个连续变量加一个离散变量相关的测量。到目前为止,我一直在基于离散变量对数据进行子集化以生成成对的图,但在我看来应该有一种方法来创建一些光滑的网格图。似乎这可以通过在 和 中分面热图来完成ggplot2,geom_tile但geom_contour我坚持
(1) 如何重新组织数据(或解释预测的表面数据)以使用 进行绘图ggplot2?
(2) 使用基本图形创建网格热图的语法?或者
(3)使用图形来rsm完成此任务的方法(rsm可以处理高阶曲面,因此我可以在某种程度上强制执行某些操作,但绘图并未完全网格化)。
这是我迄今为止一直在使用的示例:
library(fields)
library(ggplot2)
sumframe<-structure(list(Morph = c("LW", "LW", "LW", "LW", "LW", "LW",
"LW", "LW", "LW", "LW", "LW", "LW", "LW", "SW", "SW", "SW", "SW",
"SW", "SW", "SW", "SW", "SW", "SW", "SW", "SW", "SW"), xvalue = c(4,
8, 9, 9.75, 13, 14, 16.25, 17.25, 18, 23, 27, 28, 28.75, 4, 8,
9, 9.75, 13, 14, 16.25, 17.25, 18, 23, 27, 28, 28.75), …Run Code Online (Sandbox Code Playgroud) 我有一个"因素",浮点数和整数的熊猫数据框.我想在分类变量上使用条件和分组来制作"R Lattice",就像它上面的情节一样.我已广泛使用R并编写了自定义面板函数来获得我想要的格式,但我正在努力使用matplotlib来简洁地完成相同类型的绘图.我正在玩布局和subplot2grid,但似乎无法正确使用它.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
nRows = 500
df = pd.DataFrame({'c1' : np.random.choice(['A','B','C','D'], size=nRows),
'c2' : np.random.choice(['P','Q','R'], size=nRows),
'i1' : np.random.randint(20,50, nRows),
'i2' : np.random.randint(0,10, nRows),
'x1' : 3 * np.random.randn(nRows) + 90,
'x2' : 2 * np.random.randn(nRows) + 89})
Run Code Online (Sandbox Code Playgroud)
我想绘制如下的东西(R格子代码示例)
每个c1级别的x1与x2(格子码)
xyplot(x1 ~ x2 | c1, data = df)
Run Code Online (Sandbox Code Playgroud)
具有"全局"图例c2(符号或颜色)的每个c1级别的x1与x2
xyplot(x1 ~ x2 | c1, groups = c2, data = df)
Run Code Online (Sandbox Code Playgroud)
每个c2的x1直方图
hist (~x1 | c1, data = df)
Run Code Online (Sandbox Code Playgroud)
我也试图制作"条件"等高线图,例如这里产生的等值线图(1.4.4.4) …
我今天将 R 3.4.4 更新为 R 3.5.0。我的包裹不能再通过R CMD check了。它在 处失败checking whether package can be installed ... ERROR。
另一方面,我的包可以工作,只要我不检查它,我就可以安装和使用它。
错误如下:
Error: package or namespace load failed for ‘sp’:
package ‘lattice’ was installed by an R version with different internals; it needs to be reinstalled for use with this R version
Error : package ‘sp’ could not be loaded
Run Code Online (Sandbox Code Playgroud)
我尝试通过lattice以下方式重新安装:
sudo apt-get --reinstall install r-cran-lattice
Run Code Online (Sandbox Code Playgroud)
或者
remove.packages("lattice", lib="~/R/x86_64-pc-linux-gnu-library/3.5")
install.package("lattice")
Run Code Online (Sandbox Code Playgroud)
lattice在这两种情况下都正确安装了软件包。但这并不能解决我的问题。此外,我确保有一个lattice删除一个版本r-cran或自编译版本的单一版本。什么都行不通。
编辑顺便说一句,我可以做到 …
我可以轻松地mesh3d在 R 中绘制一个图:
library(plotly)
x <- runif(50, 0, 110)
y <- runif(50, 0, 1)
z <- runif(50, 1, 2)
plot_ly(x = ~x, y = ~y, z = ~z, type = 'mesh3d')
Run Code Online (Sandbox Code Playgroud)
我想根据变量的值对表面进行着色z:高值对应于红色或橙色,中值对应于黄色或绿色,较小值对应于浅蓝色或蓝色。我的问题:我该如何使用mesh3d?
wireframe我使用包中的函数做了类似的事情lattice。
library(lattice)
x<-runif(12,0,1)
y<-runif(12,0,2)
grid<-expand.grid(x,y)
z<-grid$Var1 + grid$Var2^2
df<-data.frame(z=z,x=grid$Var1,y=grid$Var2)
# Note: there are 144 observations and I want 6 colors, so I need 144/6 = 24 replications for each color
nrow(df)
nrow(df)/6
a<-palette(c(rep("blue",24),rep("light blue",24),rep("green",24),rep("yellow",24),rep("orange",24),rep("red",24)))
wireframe(z~x + y,data=df,drape=T,col.regions=a)
Run Code Online (Sandbox Code Playgroud) 在许多脚本中,我首先在屏幕上开发一个图形,然后需要将其保存为具有特定高度/宽度/分辨率的多种文件格式。使用png(), pdf(), svg(), ... 打开一个设备,然后dev.off()关闭它,我被迫将所有设备打开调用放入我的脚本中并将它们注释掉并一次一个设备重新运行代码。
我知道对于 ggplot 图形,ggsave()使这更容易。对于base-R和点阵图形,我可以做些什么来简化它?
一个例子:
png(filename="myplot.png", width=6, height=5, res=300, units="in")
# svg(filename="myplot.svg", width=6, height=5)
# pdf(filename="myplot.pdf", width=6, height=5)
op <- par() # set graphics parameters
plot() # do the plot
par(op)
dev.off()
Run Code Online (Sandbox Code Playgroud) 致所有同态加密专家:
我正在使用 PALISADE 库:
int plaintextModulus = 65537;
float sigma = 3.2;
SecurityLevel securityLevel = HEStd_128_classic;
uint32_t depth = 2;
//Instantiate the crypto context
CryptoContext<DCRTPoly> cc = CryptoContextFactory<DCRTPoly>::genCryptoContextBFVrns(
plaintextModulus, securityLevel, sigma, 0, depth, 0, OPTIMIZED);
Run Code Online (Sandbox Code Playgroud)
您能解释一下(所有)特别关注 ptm、深度和 sigma 的参数吗?
其次,我试图用上面的 cc 制作一个打包明文。
cc->MakePackedPlaintext(array);
Run Code Online (Sandbox Code Playgroud)
数组的最大尺寸是多少?在我的本地计算机(8GB RAM)上,当数组大于 ~8000 int64 时,我收到free(): invalid next size (normal)错误
equal.count()当显然可以创建没有重叠的分组时,为什么函数会创建重叠的带状疱疹.此外,重叠的基础是什么?
例如:
equal.count(1:100,4)
Data:
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
[23] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
[45] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
[67] 67 68 69 70 71 …Run Code Online (Sandbox Code Playgroud) 我希望能够以百分比单位显示格子xyplot的y轴(例如0.45 = 45%).
以下是一些假工业过程产量数据的示例:
library(lattice)
set.seed(1234)
my.df <- data.frame(period=c(1:20),
n=floor(runif(n=20,min=40,max=80)),
d=rpois(n=20,lambda=5))
my.df$yield <- (my.df$n-my.df$d)/my.df$n
xyplot(yield~period,data=my.df)
Run Code Online (Sandbox Code Playgroud)

我希望上面的y轴标签代替80%,85%,90%,95%
我的yield变量是在范围内以小数表示的分数(0 <= yield <= 1).我不想在data.frame中预处理数据(例如,乘以100),我希望通过绘图操作来处理这个问题.