【发布时间】:2011-02-17 18:32:56
【问题描述】:
我是 c 编程的初学者,我目前正在使用 ubuntu 10.04 的 gedit 来编写 c prog,我想绘制一个图形,但我能够做到,谁能告诉我它可以做到吗?有什么方法可以将输出中的数据提取到电子表格中,我可以在其中绘制 req、图表? 感谢您的帮助..nthanx!!!
【问题讨论】:
标签: c
我是 c 编程的初学者,我目前正在使用 ubuntu 10.04 的 gedit 来编写 c prog,我想绘制一个图形,但我能够做到,谁能告诉我它可以做到吗?有什么方法可以将输出中的数据提取到电子表格中,我可以在其中绘制 req、图表? 感谢您的帮助..nthanx!!!
【问题讨论】:
标签: c
Medsphere 有一些非常棒的GTK# widgets 用于绘图(除其他外),但您需要更清楚自己的输入/输出要求才能获得更具体的帮助。
【讨论】:
你可以用这个字符(■)来表示图表中的计数。这是一个可以打印的字符
printf("%c", (char)254u);
考虑一些随机的 float_arr 和 hist 数组来保存计数。
代码
// Function generating random data
for (i = 0; i < n; i++){
float random = ((float)rand() / (float)(RAND_MAX));
float_arr[i] = random;
printf("%f ", random);
}
//Dividing float data into bins
for (i = 0; i < n; i++){
for (j = 1; j <= bins; j++){
float bin_max = (float)j / (float)bins;
if (float_arr[i] <= bin_max){
hist[j]++;
break;
}
}
}
// Plotting histogram
printf("\n\nHistogram of Float data\n");
for (i = 1; i <= bins; i++)
{
count = hist[i];
printf("0.%d |", i - 1);
for (j = 0; j < count; j++)
{
printf("%c", (char)254u);
}
printf("\n");
}
输出
Histogram of Float data
0.0 |■■■■■■■■■■■■■■■■■■■■■■
0.1 |■■■■■■■■■■■■■■■■
0.2 |■■■■■
0.3 |■■■■■■■■■■■■■■
0.4 |■■■■■■■■
0.5 |■■■■■■■■■■■■■■■■
0.6 |■■■■■■■■■■
0.7 |■■■■■■■
0.8 |■■■■■■■■■■■■■■■
0.9 |■■■■■■■
【讨论】:
Gnuplot (http://www.gnuplot.info/) 是一个功能强大且免费的数据绘图工具。 您的问题不清楚是否要以编程方式绘制数据。
【讨论】:
我认为MathGL 可以帮助您。它是 GPL 绘图库,可以在不了解任何小部件库的情况下使用您的绘图创建一个窗口。它还为矩阵和 3 范围数据提供了漂亮的图形。
【讨论】:
你的问题和我一样。为此,编写了一些库来促进或多或少这样的工作:
在 c/c++ 中有一些这样的库是:
另一种绘图方法是在您的 c 代码中生成数据,然后使用其他程序对其进行绘图。有可能的 运行 gnuplot 并通过管道传递数据。但是你必须使用叉子和管道。
【讨论】: