我有以下代码使用我的 C# 应用程序中的 R 图表绘制我的输入系列:
public void plotGraphR_2D(List<double> x, double[,] y)
{
string Rpath = @"C:\Program Files\R\R-3.1.0\bin\x64";
REngine.SetEnvironmentVariables(Rpath);
REngine engine = REngine.GetInstance();
var v1 = engine.CreateNumericVector(x);
var v2 = engine.CreateNumericMatrix(y);
if (engine.IsRunning == false)
{
engine.Initialize();
}
engine.SetSymbol("v1", v1);
engine.SetSymbol("v2", v2);
engine.Evaluate("require('ggplot2')");
engine.Evaluate("library('ggplot2')");
engine.Evaluate("my_data <- data.frame(v2)");
engine.Evaluate("colnames(my_data) <- c('Price', 'Quantity')");
engine.Evaluate("myChart <- ggplot() + geom_line(data = my_data, my_data$Price)"); // THIS DOESN'T WORK
engine.Evaluate("myChart");
//engine.Evaluate("plot(my_data$Price)"); // THIS WORKS
}
我的输入x是一个列表,而y是一个二维数组。我首先将x转换为数值向量,将y转换为数据框,然后将列名更改为数据框。我想绘制我的数据框(my_data$Price)的一列,但是在使用ggplot2时它不起作用。我没有收到任何错误,但我没有看到任何图表弹出。如果我尝试使用最后一行engine.Evaluate("plot(my_data$Price)")(所以正常的情节)它工作正常。我调用ggplot2的方式有什么问题吗?我已经用RStudio安装了这个库。我还应该做些什么来解决这个问题?
谢谢。