Office Web Components(OWC)でグラフ表示させたが・・・
サーバーにOffice Web Components Ver10をインストールし、画像データとしてクライアントにグラフ表示しています。
横軸のデータを日付にしたときと時間にした時で、グラフの表示が変わってしまいます。
時間にした時は一番左の縦軸から一番右の縦軸までの折れ線グラフが表示されます(グラフ表示エリアいっぱいに表示される)が、日付にした時は、折れ線グラフは一番左の縦軸と一番右の縦軸より内側に表示されます(グラフ表示エリアより狭い範囲に表示される)。
つまり、一番左の縦軸と折れ線グラフの開始点の間に隙間ができます。
同様に一番右の縦軸と折れ線グラフの終点の間にも隙間ができてしまいます。
クライアントの画面は日付のグラフと時間のグラフの2画面を表示しますので、どちらかに統一したいのですが、どうすればよいでしょうか。
下記のソースはstring categoryの時間の方はコメントにしていますが、日付の方をコメントにすると折れ線グラフの表示範囲が狭くなります。なにしろOWCは始めてなので、わからないことだらけです。
よろしくお願いします。
Response.ContentType = "image/gif";
Response.Clear();
Response.Buffer=true;
Bitmap bitmap = new Bitmap(1230, 750, PixelFormat.Format24bppRgb);
ChartSpace chartSpace = new ChartSpaceClass();
ChChart chChart = chartSpace.Charts.Add(0);
chChart.Type = ChartChartTypeEnum.chChartTypeLineMarkers;
string category = "4/1,4/2,4/3,4/4,4/5,4/6;
//string category= "10:10,11:11,12:12,13:13,14:14,15:15";
string value = "9.99,9.98,9.97,9.96,9.95,9.95";
chChart.SeriesCollection.Add(0);
chChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
(int)ChartSpecialDataSourcesEnum.chDataLiteral, category);
chChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,(int)
ChartSpecialDataSourcesEnum.chDataLiteral, value);
Response.BinaryWrite((byte[])chartSpace.GetPicture("gif", 1230, 750));
bitmap.Dispose();
お礼
お礼が遅くなって済みませんでした。 結局、gnuplot を使って解決しました。 cgi で、gnuplot のスクリプトファイルを生成して、 gnuplot を起動して、スクリプトで出力先に指定しておいたファイル(png形式)を cgi の結果から読みこむ、という手順です。 もっとスマートな方法があるのかも知れませんが、とりあえずやりたいことはできるようになりました。 #本当は、インタラクティブにグラフをいじれれば、最高なんですが…。 ともあれ、ありがとうございました。