質問編集履歴

1

ソースコードと出力結果を追加しました。

2020/06/18 02:47

投稿

yukatii
yukatii

スコア5

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,121 @@
23
23
  いろんなサイトで調べて、配列をgnuplotに渡すやり方はわかったのですが、縦軸を人数で表記するというやり方がどこにも載っていなかったので、考え方などを教えてくださるとうれしいです。
24
24
 
25
25
  よろしくお願いします。
26
+
27
+
28
+
29
+ ###ソースコード
30
+
31
+ 平均を計算するプログラムとグラフ化するプログラムを一旦分けているので、グラフ化の方だけ記述します。
32
+
33
+ ```
34
+
35
+ #include <stdio.h>
36
+
37
+
38
+
39
+
40
+
41
+ int main(void)
42
+
43
+ {
44
+
45
+ FILE *gp; //パイプを開く
46
+
47
+ int i;
48
+
49
+ int x[10];
50
+
51
+
52
+
53
+ for(i=0;i<10;i++){
54
+
55
+ x[i]=i*10;
56
+
57
+ }
58
+
59
+ gp=_popen("gnuplot -persist","w"); //gnuplot起動。-persistでずっと開いた状態にする
60
+
61
+
62
+
63
+
64
+
65
+ fprintf(gp,"set boxwidth 1\n"); //棒グラフの設定,棒の太さ
66
+
67
+ fprintf(gp, "set xrange [0:10]\n"); //x軸の表示設定
68
+
69
+ fprintf(gp, "set yrange [0:100]\n"); //y軸の表示設定
70
+
71
+
72
+
73
+ fprintf(gp,"plot '-' with boxes\n");
74
+
75
+ for(i=0;i<10;i++){
76
+
77
+ fprintf(gp,"%d\t%d\n",i,x[i]);
78
+
79
+ }
80
+
81
+ fprintf(gp,"e\n");
82
+
83
+
84
+
85
+ fflush(gp);
86
+
87
+ _pclose(gp);
88
+
89
+ return 0;
90
+
91
+ }
92
+
93
+ ```
94
+
95
+ このプログラムに、
96
+
97
+ ```
98
+
99
+ if(x[i]<=10) hist0+=1;
100
+
101
+ else if(11<=x[i]<=20)
102
+
103
+ hist1+=1;
104
+
105
+ else if(21<=x[i]<=30)
106
+
107
+ hist2+=1;
108
+
109
+ else if(31<=x[i]<=40)
110
+
111
+ hist3+=1;
112
+
113
+ else if(41<=x[i]<=50)
114
+
115
+ hist4+=1;
116
+
117
+ else if(51<=x[i]<=60)
118
+
119
+ hist5+=1;
120
+
121
+ else if(61<=x[i]<=70)
122
+
123
+ hist6+=1;
124
+
125
+ else if(71<=x[i]<=80)
126
+
127
+ hist7+=1;
128
+
129
+ else if(81<=x[i]<=90)
130
+
131
+ hist8+=1;
132
+
133
+ else if(91<=x[i]<=100)
134
+
135
+ hist9+=1;
136
+
137
+ ```
138
+
139
+ を追加したいと思っています。
140
+
141
+ #出力結果
142
+
143
+ ![イメージ説明](83a8c29906a8d571c0615901a7685cc1.png)