2014-10-06 6 views
0

Я пытаюсь построить график из C-программы (Windows 7) Я сохранил массив точек графа, например x [] и y1 [], y2 [ ] и y3 []. Я хочу построить несколько y точек для фиксированных точек x. Как использовать gnuplot из моей программы для построения графика?Как использовать gnuplot из C-схемы для построения графика

+0

Вы входите в мир боли, но вот способ в HTTP://stackoverflow.com/questions/3521209/making-c-code-plot-a-graph-automatically – downhillFromHere

+0

Я попытался использовать образец кода из приведенной выше ссылки. Но кажется, что трубопровод не работает для системы Windows. Когда я запускаю программу, она открывает окно вывода, но графики не отображаются. – SvckG

ответ

0

Не самое элегантное решение, но это должно работать:

int main(int argc, char **argv){ 
    FILE * temp = fopen("data.temp", "w"); 
    FILE * gnuplotPipe = popen ("gnuplot -persistent", "w"); 
    for(Iterate over your array so that you create another exact temporal array){ 

     float a, b, c; 

     x = something; 
     y1 = something; 
     y2 = something; 
     y3 = something; 

     fprintf(temp, "%d %d %d %d \n", x, y1, y2, y3); 
    } 

    fprintf(gnuplotPipe, "(here whatever you want to tell gnuplot to do) i.e plot 'data.temp' using 1:2 with lines, etc");  

    return 0; 
} 

В качестве альтернативы вы можете сделать это:

int plot(){ 
    system("gnuplot -p -e \"(Here put whatever you would put in gnuplot as if you were ploting manually)\""); 
    return 0; 
} 
Смежные вопросы