質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

2回答

5084閲覧

C#で.aspxにてグラフをかきたいです

pro-poke5

総合スコア46

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio 2010

Microsoft Visual Studio 2010はMicrosoftが提供している統合開発環境(IDE)です。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

1グッド

0クリップ

投稿2017/12/14 01:25

編集2017/12/26 06:19

こんにちわ

現在VisualStudio2010にて
C#と.aspxで折れ線グラフを描写しようとしています
チャートコントロールを使いたく
サンプルなどみてかいたのですがうまくできません

データはバインドしていれます

間違いやアドバスをご指摘願いませんでしょうか
よろしくお願いいたします。

C#

1 2 private void Chart(object sender, EventArgs e) 3 { 4 DataSet ds = new DataSet(); 5 6 Series char1 = Chart1.Series.Add("name"); 7 8 char1.LegendText = "ああ"; 9 char1.ChartArea = "SumChartArea"; 10 11 Chart1.Series.Clear();//初期化 12 Chart1.ChartAreas.Clear(); 13 14 char1.AxisLabel = "グラフ"; 15 16 char1.XValueMember = "Xdate"; 17 char1.YValueMembers = "Ydate"; 18 19 this.Chart1.DataSource = this.ds; 20 Chart1.DataBind(); 21 22 } 23

aspxファイルがこちら↓

<asp:Chart ID="Chart1" runat="server" onload="Chart1_Load" EnableViewState="false"> <Series> <asp:Series Name="Series1" ChartType="Line"> </asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"> </asp:ChartArea> </ChartAreas> </asp:Chart>

よろしくおねがいします。

追記
コードの以下のように修正いたしました。

C#

1 2 private void Chart(object sender, EventArgs e) 3 { 4 Chart1.Series.Clear();//初期化 5 6  Chart1.Series["series1"].Points.AddXY(1, 55); 7 Chart1.Series["series1"].Points.AddXY(2, 72); 8 Chart1.Series["series1"].Points.AddXY(3, 80); 9 Chart1.Series["series1"].Points.AddXY(4, 49); 10 11 Chart1.Series.Add("series1");  12    } 13

追記2
試行錯誤し無事に解決いたしました。
原因としてデータソースがうまくセットできていなかったことや、小さなスペルミス等でした。
無事動いたソースは以下になります。

アドバイス等ありがとうございました。

C#

1 DataSet ds = new DataSet(); 2             Chart chart = new Chart(); 3 chart.Series.Clear(); 4 chart = new Chart(); 5 6 Series series = new Series(); 7 series.ChartType = SeriesChartType.Line; //グラフ 8 9 series.XValueMember = "Xdata"; 10 series.YValueMembers = "Ydata"; 11 chart.Series.Add(series); 12 ChartArea area = new ChartArea(); 13 chart.Titles.Add("あああ"); 14 15 chart.ChartAreas.Add(area); 16 chart.DataSource = ds; 17 18 Chart1.Controls.Add(chart); 19 Chart1.DataBind(); 20
MasuMasu👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Chart のサンプルは持っているでしょうか?

持っているなら以下はスルーしてください。

持っていなければ MSDN のサイトからサンプルを入手できるので、ダウンロードして動くように設定することをお勧めします。話はそれからにした方がよさそうです。

解説が英語であるのを厭わなければこのサンプルは今後の開発に非常に有益なものになると思います。

このスレッドの質問者さんの問題がサンプルを見ると解決するかどうかは分かりませんが、解決のためのヒントはあるかもしれません。

解決できなくとも、今後の開発に役立つはずですので、ダウンロードして設定する手間をかけても損はないと思います。

サンプルの入手先や設定手順は以下の記事にありますので、興味があれば見てください。

Chart Samples
http://surferonwww.info/BlogEngine/post/2016/02/14/chart-samples.aspx

投稿2017/12/14 02:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pro-poke5

2017/12/14 02:34

アドバイスありがとうございます サンプルはダウンロードし参考にしているのですが 初心者故有効に活用できておらずすみません…
退会済みユーザー

退会済みユーザー

2017/12/14 06:56

サンプルは質問者さんの環境で動いているんですか?  完全な ASP.NET Web Forms アプリの Web サイトプロジェクトとしてサンプルが含まれているので、それを適当なフォルダに解凍して Visual Studio(.NET4 なので 2010 以降のバージョン)で開いて実行すれば何も手を加えることなく動くはずです。 それすら動かないということですと、どこか質問者さんの環境に問題がありそうな気がします。
pro-poke5

2017/12/15 02:29

ありがとうございます サンプルは動いております 現在コードを修正し、実行するとエラーはでないのですがグラフが表示されません 枠自体は存在し空の状態のようなイメージになります…
退会済みユーザー

退会済みユーザー

2017/12/15 04:12

> サンプルは動いております では、サンプルを実行して、ブラウザに表示された画面の左ウィンドウの Content タブで Chart Types > Line Charts を開いて、サンプルを見ることができるのですよね? その中に質問者さんが望む形に近いものはありませんか? 全く望むものと違っていて、それらは役に立たないですか? > 現在コードを修正し、実行するとエラーはでないのですがグラフが表示されません 「修正」って一体何をしたのですか? 具体的に書いてくれないと誰もあなたのやったことは分かりません。分からないので何のアドバイスもできません。
退会済みユーザー

退会済みユーザー

2017/12/15 04:36

誰マイナス評価をした人は? 理由を書かないでそういうことをするのは卑怯ですよ。
guest

0

うーん、char1が使われていないようですが……。
これでどうでしょうか?

C#

1 //Series char1 = new Series(); 2 Series char1 = Chart1.Series.Add("name");

投稿2017/12/14 01:37

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pro-poke5

2017/12/14 01:51

ありがとうございます Seriesにエラーがでて型、または名前空間名Seriesが見つかりませんでしたとでるのですが 何が足りないのでしょうか… 初歩的な質問ですみません
x_x

2017/12/14 02:05

usingはどう書いてますか? System.Web.UI.DataVisualization.Charting でしょうか?
pro-poke5

2017/12/14 02:15

ありがとうございます そちら抜けていました あと度々すみません このChart1にエラーが出るのですが、 aspxファイルでIDとしてChart1使用してるのですが csファイルでも何か定義?とかする必要があるのでしょうか?
pro-poke5

2017/12/14 02:52

ありがとうございます 何度も申し訳ありませんでした エラー内容は 名前”Chart1”は現在のコンテキスト内に存在しません とでてきます こちらのサイト参考にさせていただきます。
pro-poke5

2017/12/15 02:25

エラーはaspxファイルの方でChartコントロールの場所がItemTemplateのなかにあることで出ていたようでした
退会済みユーザー

退会済みユーザー

2017/12/15 04:04

ここに書いてあること以外は知る由もない第三者には、そういう質問に書いてないところで出ている問題であるということは知る由もないです。回答が必要ならきちんと情報提供してください。 で、Chart を単独でページに配置したら(他のコントロールの中に入れるのは止めて、Page 上に直接 Chart をツールボックスからドラッグ&ドロップしたら)動くようになるのですか?
pro-poke5

2017/12/15 07:33

すみません、本当にまだ始めたばかりの初心者でそこが原因だと考えず情報を提供していませんでした 以後気を付けます 単独で配置したら動きます
退会済みユーザー

退会済みユーザー

2017/12/15 08:04

> 単独で配置したら動きます ということは Chart を GridView とか DetailsView などの ItemTemplate に配置した結果、コードビハインドの C# のコードで Series char1 = Chart1.Series.Add("name"); としても Chart1 が認識されなかったことが原因ですよね? Chart に限らず(Button でもなんでも)、ItemTemplate にコントロールを配置した場合、そのコントロールは動的に生成されるので、Series char1 = Chart1.Series.Add("name"); というような形で静的に取得することはできません。 今回のケースでどうすればいいかのアドバイスが必要でしたら、質問者さんのやりたいことの全体のストーリー・シナリオをかいて、それを実現するのにどういうコードを書いたか、部分的ではなく全体が分かる情報を出してください。
pro-poke5

2017/12/19 08:28

追記に説明を付け加えました。 ただのサンプルデータを表示することだけはできるようになりました。 可変式になるようもう少し調べて頑張りたいと思います。
退会済みユーザー

退会済みユーザー

2017/12/19 09:19

先の問題、 > エラーはaspxファイルの方でChartコントロールの場所がItemTemplateのなかにあることで出ていたようでした は解決したのですか? 順序だてて、あなたが何をしたのかをきちんと書かないと・・・
pro-poke5

2017/12/20 00:19

すみません、そちらは解決いたしました。 そもそもサンプルでさえも表示できなかったことが問題であり、それがItemTemplateのなかにあったことが原因でした そちらはaspxファイルのなかになるチャートコントロールの位置を変えることで解決しました そして最終的なゴールであるデータをバインドさせてグラフを表示させるのがわからずという状態です
退会済みユーザー

退会済みユーザー

2017/12/20 00:39

先のコメントにあった「単独で配置したら動きます」と言う状態とどう違うのですか? その時は動いたんじゃなかったのですか?
pro-poke5

2017/12/20 01:18 編集

サンプルを配置した時は適当な場所に配置してたまたま動いていたようで、 自分で配置させたときは別の場所に配置させ場所が悪かったので表示されなかったのだと思います このasxpxファイルは今載せているコードのほかにヘッダーやフッターやほかの部分もあります 今回データを表示させたいという質問なのでchartを配置している前後の関係のない部分はのせていませんでした ややこしくてすみません
退会済みユーザー

退会済みユーザー

2017/12/20 02:47

提供される情報では状況が正確には把握できません。なんとなく想像はできますが、想像をベースに回答して想像が間違っていていると混乱を招くばかりですので、具体的に全体の状況が見えるものをベースに話をしませんか? 例えば、 (1) 質問者さんの問題を再現できる必要最低限(「ヘッダーやフッターやほかの部分」など余計なものは削除)の完全なサンプルコードを掲示する。 それがダメなら、 (2) Chart サンプルから質問者さんの目的に合うものを選び、そのソースコードをベースにする。 上記提案に乗れる場合は私の回答のコメントにその旨書いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問