У меня есть следующий код для построения моей входной серии с использованием 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 является 2-мерным массивом. Сначала я конвертирую x в числовой вектор и y в фрейм данных, а затем меняю имена столбцов на фрейм данных. Я хочу построить один из столбцов моего фрейма данных (my_data $ Price), но при использовании ggplot2 он не работает. Я не получаю никаких ошибок, но я не вижу ни одной диаграммы. Если я попытаюсь использовать последний движок строки. Evaluate ("plot (my_data $ Price)") (так обычный график), он отлично работает. Есть ли проблема с тем, как я называю ggplot2? Я установил библиотеку с RStudio. Что-нибудь еще, что я должен сделать, чтобы исправить проблему?
Благодарю.
Предоставленный R-код не работает, как сообщается. Приведенный ниже код действительно создает ggplot, однако оператор print
создает окно графического устройства, но показывает неправильный дисплей (пустая форма). Так что да, есть проблема, но я точно не знаю почему. Единственным обходным решением, которое я могу предложить, является попытка вывода изображений на диск.
engine.Evaluate("myChart <- ggplot(my_data, aes(x=Price, y=Quantity)) + geom_line()");
engine.Evaluate("print(myChart)");
engine.Evaluate("print(myChart)");
, Я не знаком с R.net, но это может заставить его построить графикggplot