在c中绘制图表

时间:2011-02-17 18:32:57

标签: c

我是c编程的初学者,我目前正在使用ubuntu 10.04的gedit来编写c prog,我想绘制图形,但我能够做到,任何人都可以告诉我它可以做到或者其他有没有办法将数据从输出提取到电子表格,我可以在其中绘制req,graph? 我很感激你的帮助..还是谢谢!

5 个答案:

答案 0 :(得分:1)

您可以使用此字符(■)来表示图形中的计数。这是一个可以打印的字符

printf("%c", (char)254u);

考虑一些随机的float_arrhist数组来保存计数。

代码

// 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 |■■■■■■■

答案 1 :(得分:0)

Medsphere有一些非常棒的GTK# widgets用于绘图(除其他外),但您需要更清楚一点输入/输出要求才能获得更具体的帮助。

答案 2 :(得分:0)

Gnuplot(http://www.gnuplot.info/)是一个非常强大且免费的图表数据工具。 您的问题不清楚是否要以编程方式绘制数据。

答案 3 :(得分:0)

我认为MathGL可以帮到你。它是GPL绘图库,可以在不知道任何小部件库的情况下创建与您的绘图窗口。它还有很好的矩阵和3范围数据图形。

答案 4 :(得分:0)

你的问题跟我一样。要做到这一点,有一些库,以促进或多或少的工作:

  1. 打开一个新窗口
  2. 画一些东西。那就是坐标,曲线,背景等。
  3. 在c / c ++中,有些库是:

    1. libplot,gnu plot utils www.gnu.org/s/plotutils。是一个非常基本的,文档有很好的例子,到 在svg,png和其他文件中绘图。您也可以在窗口中绘图或制作动画。
    2. mathGL基于open-gl。
    3. 制作绘图的另一种方法是在c代码中生成数据,然后使用其他程序绘制数据。有可能的 运行gnuplot并通过管道传递数据。但你必须使用叉子和管道。