• 締切済み

ASP、OWCでの折れ線グラフ表示方法について

現在、ASPでWEBページを作成しています。 このページ内でOffice Web コンポーネントを利用して折れ線グラフを表示しようとしています。 例えば、商品Aの売上高を折れ線グラフにする場合、折れ線が1つの場合は、下記コードにて実現できましたが、折れ線が2つ(例えば、2009年の売上高と2008年の売上高)の場合はどのように記述すれば良いのでしょうか? Office Web コンポーネントを利用するのが初めてなものでどのように調べれば良いかも分からない状況です。 よろしくお願いします。 --コード-- filename = Server.MapPath("graph1.gif") Set ObjChart = Server.CreateObject("OWC.Chart") Set ChaCon = ObjChart.Constants Set ObjCharts = ObjChart.Charts.Add Set SerCol = ObjCharts.SeriesCollection.Add 'Jikuに年月をセット 'Valに売上高をセット ObjCharts.Type = ChaCon.chChartTypeLineMarkers SerCol.SetData ChaCon.chDimCategories , ChaCon.chDataLiteral, Jiku SerCol.SetData ChaCon.chDimValues , ChaCon.chDataLiteral, Val ObjChart.ExportPicture filename, "gif", 300, 300 Response.Write "<P>グラフが作成されました。" Response.Write "<P><img src='graph1.gif'>"

みんなの回答

noname#259269
noname#259269
回答No.1

OWC 使った事ないですが、コードから推測するに SerCol が指しているものが1本の折れ線で実現できるものだと思うので、 Set SerCol2 = ObjCharts.SeriesCollection.Add SerCols2.SetData ... SerCols2.SetData ... でいけそうな気がします。

ssdhiro
質問者

お礼

ありがとうございます。 折れ線が2本できました。

関連するQ&A

  • ASP OWCでのグラフ作成について

    ASP OWCでグラフの作成をしています 下記コードにて実行すると、「オブジェクトでサポートされていないプロパティまたはメソッドです。: 'Minimum'」のエラーとなります 解決方法をお教えください よろしくお願いします --コード-- filename = Server.MapPath("graph1.gif") Set ObjChart = Server.CreateObject("OWC.Chart") Set ChaCon = ObjChart.Constants Set ObjCharts = ObjChart.Charts.Add Set SerCol = ObjCharts.SeriesCollection.Add Set SerCol2 = ObjCharts.SeriesCollection.Add 'Jiku、Jiku2に年月をセット 'Val、Val2に売上高をセット ObjCharts.Type = ChaCon.chChartTypeLineMarkers SerCol.SetData ChaCon.chDimCategories , ChaCon.chDataLiteral, Jiku SerCol2.SetData ChaCon.chDimCategories , ChaCon.chDataLiteral, Jiku2 SerCol.SetData ChaCon.chDimValues , ChaCon.chDataLiteral, Val SerCol2.SetData ChaCon.chDimValues , ChaCon.chDataLiteral, Val2 ObjCharts.Axes(ChaCon.chAxisPositionLeft).NumberFormat = "#,##0" ObjCharts.Axes(ChaCon.chAxisPositionLeft).MajorUnit = "1000" ObjCharts.Axes(ChaCon.chAxisPositionLeft).Minimum = 10000 ObjChart.ExportPicture filename, "gif", 300, 300

  • 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();

  • VB6.0で折れ線グラフ作れますか?

    SQLSEVER7.0,VB6.0でシステムを構築しようと 思っています。 例えば SQLSEVERに日別の売上データをいれて それをVB6.0で日付を範囲を指定する 検索条件画面を作り、売上が日別に上がっているのか 下がっているかが簡単にわかる 折れ線グラフを作成したいのですが 可能ですか? なるべく費用を 使いたくないので VB標準のコンポーネントか フリーソフトがあったら 教えてください。

  • OWCによるグラフ描写について

    いつもお世話になっています。お知恵を拝借したく質問いたします。 .NET環境でOffice Web Components(OWC)11を使って Web上で折れ線グラフを表示するプログラムを作成していますが、グラフの中で指定部分を表示しないようにしたいのですが方法が解りません。 具体的にはX軸の「1,2,3,4,5,6,7,8,9,10」に対して Y軸の「10,20,30,40,50」まで表示して残りを非表示にしたいのです。Excelではデータ部分を空白にすれば非表示になりますが、''で指定しても'NULL'で指定しても「0」扱いになってしまいます。 指定方法をご存知の方がいらっしゃいましたら、どうかご教授ください。 よろしくお願いいたします 開発環境 WindowsServer2003R2 .NetFrameWork2.0 VisualStudio2005 Office Web Components(OWC)11 -------------------------以下ソース------------------------- Dim chartSpace As ChartSpace = New ChartSpaceClass() Dim chChart As ChChart = chartSpace.Charts.Add(0) '折れ線グラフ chChart.Type = ChartChartTypeEnum.chChartTypeLine 'Y軸 Dim YAxis As ChScaling YAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionLeft).Scaling YAxis.Type = ChartScaleTypeEnum.chScaleTypeLinear YAxis.Maximum = 100 YAxis.Minimum = -100 'X軸 Dim XAxis As ChScaling XAxis = chChart.Axes(ChartAxisPositionEnum.chAxisPositionBottom).Scaling XAxis.Type = ChartScaleTypeEnum.chScaleTypeLinear XAxis.Maximum = 14 '値をプロット Dim series As ChSeries = chChart.SeriesCollection.Add(0) series.Type = chartSpace.Constants.chChartTypeScatterLine series.SetData(ChartDimensionsEnum.chDimYValues, CInt(ChartSpecialDataSourcesEnum.chDataLiteral), "10,20,30,40,50,'','','','','',''") series.SetData(ChartDimensionsEnum.chDimXValues, CInt(ChartSpecialDataSourcesEnum.chDataLiteral), "1,2,3,4,5,6,7,8,9,10") With chartSpace .Border.Color = chartSpace.Constants.chColorNone End With Response.BinaryWrite(chartSpace.GetPicture("gif", 500, 400)) Response.End() -------------------------END-------------------------

  • グラフ作成時のデータ取得について

    グラフ作成時のデータ取得について 下記コードにてグラフを作成したのですが データが2種類で20回分の連続データのグラフを作成したいのですが 下記のコードだと、4種類の10回分のグラフにしかなりません 元データはA13とA14にデータの見出し C13~L14までは第1回目から10回目までのデータ C16~L17までは第11回目から20回目までのデータが記入されてます setsourcedataの後のrange内をどのように変更すればよろしいでしょうか? ご教示願います Dim xlsheet As Worksheet Dim objChart As ChartObject Dim myrange1 As Range Set xlsheet = ActiveSheet For Each objChart In xlsheet.ChartObjects objChart.Delete Next Set objChart = Nothing With xlsheet.ChartObjects.Add(10, 50, 850, 180).Chart .HasTitle = True .ChartType = xlColumnClustered .SetSourceData Source:=Union(Range(Cells(13, 1), Cells(14, 12)), _ Range(Cells(16, 3), Cells(17, 12))) .Legend.Position = xlLegendPositionTop .HasTitle = False End With Set xlsheet = Nothing End Sub

  • OfficeWebコンポーネントによるグラフのイベント取得

    お世話になります。 当方、折れ線グラフを含むシステムをASPにて実現したいと思っています。 試しにOWC(OfficeWebコンポーネント)を使ってグラフは描けたのですが、 更に折れ線グラフ上からマウスクリックイベントを取得したいのです。 (上記イベントを取得するには「ValueToPointメソッド」というものを 使用するらしいのですが、当方の環境がOffice2Kのためかエラーになって しまいます。OfficeXPじゃないとサポートしてないのかな?) また、プロットエリアに縦線を描きたいのですが、可能でしょうか? よろしくお願いします。

  • Excelの折れ線グラフの線をマクロから削除したい

    いつも楽しく勉強させていただいております。 OSはWin7でOffice365です。 Excelマクロはまだまだ勉強中です。 Excelシート上の折れ線グラフの線をマクロから削除したいのですが、どうしてもできません。 前提として6本線の折れ線グラフがあります。 データによってはグラフの線は6本以下のことがあります。 その場合は不要なグラフの線を消したいのです。 そこでグラフを右クリックし、[データソースの選択]ダイアログで削除したい系列を削除して、それをマクロ記録しました。 Sub Macro2() ActiveSheet.ChartObjects("グラフ 146").Activate ActiveChart.FullSeriesCollection(6).Delete End Sub これを参考に下記のマクロを書きました。 Sub d() Dim a As ChartObject Dim b As Chart Set a = ActiveSheet.ChartObjects(1) Set b = a.Chart b.FullSeriesCollection(6).Delete End Sub ところが最後の行で「実行時エラー1004 パラメータが無効です」になって異常終了してしまいます。 デバッガを使って調べると b.FullSeriesCollection.Countが3になており、 b.FullSeriesCollection(3).Deleteつまり三つ目の系列なら削除することができます。 しかし最大6個の系列のうち、後ろの方から削除したいのでこれでは困ってしまいます。 どうしたらいいでしょうか。 なぜ系列は6個なのに3個にされてしまうのでしょうか。 ちょっと引っかかるのが[データソースの選択]ダイアログで「データ範囲が複雑すぎるため表示できません」と言われることです。

  • エクセルVBAの質問

    VBAでわからないことがあります。 まず下記のプログラムをご覧下さい。 グラフを作成して、そのグラフにタイトルをつけるというものですが、グラフを削除してまた新たに作成すると "graph1"ではなくなりますよね? グラフの番号がどのようになっても利用できるプログラムを作成したいのですが、どのようにすればよいのでしょうか? ************************** Sub MakeChart() Dim mySouce As Range Set mySouce = Range("B2").CurrentRegion Charts.Add ActiveChart.SetSourceData _ Source:=mySouce,PlotBy:=xlColumns Charts("Graph1").Activate with activechart .HasTitle=True .ChartTitle.Text = "4月度売上高" End Sub ************************* 私が考えたのは Charts("Graph1").Activate ⇒chart("graph" & charts.count) だと思うのですが、うまくいきませんでした。 ご存知の方がいましたら、教えていただけないでしょうか。

  • POSTで受け取った値をもとにJpGraphでグラフ化したいです。

    こんにちは。 いつもお世話になっております。 今グラフPHPを↓のように書いています。 <?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_line.php"); //グラフの作成 $a = 75; $b = 24; $c = 5; $d = 56; $e = 12; $graph = new Graph(400,300,"auto"); $graph->SetScale("textlin"); $label = array("Apr","May","June","Lul","Aug"); $graph->xaxis->SetTickLabels($label); //拝啓の色指定 $graph->ygrid->SetFill(true,'#EFEFFF@0.5','#DDEEFF@0.5'); //線1のプロット $data = array($a,$b,$c,$d,$e); $plot = new LinePlot($data); $plot->mark->SetType(MARK_FILLEDCIRCLE); $plot->mark->SetFillColor("blue"); $plot->mark->SetWidth(3); $plot->SetColor("blue"); $plot->SetLegend(total); $graph->Add($plot); これ↑は、ちゃんと表示されたので、 $a = 75; に入っている部分を、 $a = $_POST["1gatu"]; $b = $_POST["2gatu"]; にしてみたのですが、折れ線のない グラフだけ(枠組みだけ)が表示されて しまいます。 JpGraphでは、このような使い方は 出来ないのでしょうか・・・・? どうかご指導よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBSでExcelのグラフを作成

    VBScriptで 1.Excelを起動 2.CSVファイルを開く 3.開いたデータを使ってグラフ(折れ線付き散布図)を作る という処理を一括して行おうとしています。 現在2までは成功しており、3でつまづいています。 具体的には、グラフタイプを折れ線付き散布図に変更するところでエラーが生じます。 以下実際のコードです。 'Excelを開く Set excel = CreateObject("Excel.Application") excel.Visible = true 'CSVファイルを開く Set book = excel.Workbooks.Open("C:\\test.csv") 'グラフを作る Set sheet = excel.ActiveSheet Set chart = sheet.ChartObjects.Add(50, 50, 500, 300) chart.Chart.ChartType = xlXYScatterLines '※※※ この行でエラー ※※※ chart.Chart.SetSourceData sheet.Range("A2:B50") エラーの内容は「型が一致しません」というもので、この行がなければ最後まで動作します。 (グラフタイプが最もデフォルトの集合縦棒になってしまいますが) グラフタイプを折れ線付き散布図にする、chart.Chart.ChartType = xlXYScatterLines という シンプルな一文のどこに間違いがあるのか、ご教授願います。

専門家に質問してみよう