У меня есть следующий код для построения серии входных данных с использованием диаграмм 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. Что-нибудь еще я должен сделать, чтобы решить проблему?
Спасибо.
engine.Evaluate("print(myChart)");
. Я не знаком с R.net, но это может заставить его построить сюжетggplot
- person ialm   schedule 21.10.2014