• ベストアンサー

VB2010でグラフ表示について

Visual Basic 2010でのプログラミングがわからないので教えて下さい。 自分は、今回がプログラムを初めて行う初心者でして、テキストファイルを読み込むことはできたのですが、サンプルコードを改変してつくったので言語についてはあまり理解できていません。 知識不足なのですが、急いで作らなくてはいけないのでよろしくお願いします。 テキストファイルから必要な部分だけを読み込む→読み込んだ数値を使ってグラフを表示するというアプリケーションを作りたいのですが、どのようにすればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは もうすでに解決済みでしょうか? >テキストファイルを読み込むことはできたのですが、 ファイルを読み込むことは出来たみたいですので、ファイルの部分は別クラスにしますのでこちらはわからなければ無視してください。 >読み込んだ数値を使ってグラフを表示する こちらは、チャートコントロールを使うと簡単ですが、基本ということでグラフはPictureBoxに表示します、Formに直接表示してもかまいません。 #Bitmapを使って描画の入れ物を作成します。 #Graphicsの変数を定義します Dim g As Graphicsみたいに #グラフに使用する文字のフォントを決めます。 Dim fnt As Font #ループを使用してグラフを表示します。 DrawStringを使用して文字を表示します。 g.DrawString(文字列、フォント、色、x座標、y座標) FillRectangleを使用して四角の塗りつぶしたグラフを作成します。 g.FillRectangle(色、表示するx座標、表示するy座標、四角の幅、四角の高さ) 以下サンプルです。 Imports System.Drawing Imports System.Windows.Forms Public Class Form1 Dim dt As New dodata 'クラスdodataをインスタンス Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown dt.readtxt() 'ファイルの読み込み '画像の入れ物を作成 Dim spc As New Bitmap(PictureBox1.Width, PictureBox1.Height) '画像の変数を作成 Dim g As Graphics = Graphics.FromImage(spc) 'フォントの作成 Dim fnt As Font = New Font("MSゴシック", 15, FontStyle.Bold) 'ループでグラフを作成  dt.m.CountはClass dodataのプロパティのリストの数 For mcnt As Integer = 0 To dt.m.Count - 1 '月を作成  dt.m(mcnt)はClass dodataのプロパティのリストから文字列を取得 g.DrawString(dt.m(mcnt), fnt, Brushes.Navy, 10 + mcnt * 50, 300) '棒グラフの作成 dt.nu(mcnt)はClass dodataのプロパティのリストから数値の取得  g.FillRectangle(Brushes.Red, 15 + mcnt * 50, 250 - (10 * CInt(dt.nu(mcnt))), 20, (10 * CInt(dt.nu(mcnt)))) Next '各変数を処理 fnt.Dispose() g.Dispose() 'PictureBox1に画像を表示 PictureBox1.Image = spc End Sub End Class Public Class dodata Shared _m As New List(Of String) 'リストの作成 Shared _nu As New List(Of String) 'リストの作成 'テキストファイルの読み込み Public Sub readtxt() _m.Clear() 'リストのクリア _nu.Clear() 'リストのクリア Dim reader As New IO.StreamReader("C:\test\test.txt", System.Text.Encoding.GetEncoding("shift_jis")) Dim line As String 'ファイルの一行 Dim item() As String '各行の配列 line = reader.ReadLine '一行読む Do Until line Is Nothing '最後の行まで読む item = line.Split(",") '各行をカンマで区切る _m.Add(item(0)) '_mにitem(0)をAddする _nu.Add(item(1).Replace("件", "")) '_nuにitem(1)をAddする line = reader.ReadLine '一行読む Loop reader.Close() End Sub 'プロパティにリストごと読み取る Public ReadOnly Property m As List(Of String) Get Return _m End Get End Property 'プロパティにリストごと読み取る Public ReadOnly Property nu As List(Of String) Get Return _nu End Get End Property End Class

000200
質問者

お礼

大変丁寧な回答,参考にさせていただきました. ありがとうございます. 非常に多くの情報がつまっていたので自分で理解するのに時間がかかってしまいましたが、少しずつ勉強していきます. それと,追加で質問になってしまうのですが FileOpen(fileNo, fileName, OpenMode.Input) というメソッドでファイルを読み込もうとしているのですが,このメソッドでも同じようにできるのでしょうか. 質問がわかりにくくですいません.よろしくおねがいします.

その他の回答 (1)

回答No.2

すいません、読み込んだテキストファイルの内容を記入し忘れました。 3月,21件 4月,10件 5月,11件 6月,5件 7月,8件 8月,15件 上記のようになっています。

関連するQ&A

  • VB6でグラフを表示する方法

    みなさん教えてください。 今VB6で、下記のようにグラフを表示するソフトを作成しています。 (1)Text1、Text2、Text3に数値を入力する (2)(1)後「グラフ作成」ボタンを押すと、入力値がテキストファイル「data.txt」に書き出される。 (3)(2)後、赤枠エリアに例のようなグラフ(折れ線グラフ)が作成される →「PictureBox」か「Microsoft Graph 10.0 Object Library」を用いて、エクセルで表示するようなグラフを作成したい 上記(1)~(3)のような動きをするソフトを作成しているのですが、(2)の段階で苦戦しています。悩んでいます。 みなさん、よいアドバイスを頂けないでしょうか。 サンプル構文をのせて頂けたらうれしいです。 よろしくお願い致します。

  • VB6とかVB2005とは?

    お間抜けな質問かもしれませんが。。。 Visual Basic 6.0 → Visual Studioにあり、ボタンやテキストボックスなどを作成し、そこの実装(プログラム)していく。 Visual Basic 2005 → 言語そのもの と私は思っているのですがどうでしょうか?

  • MDBファイル(Access)からデータを取得できなくて、困っています…

    Visual studio 2005(C#を使っています)で、mdbファイル(Access)のデータを取り込むプログラムを組もうとしているのですが、上手くいかなくて困っています。 具体的には、 (1)mdbファイルに接続 (2)mdbの1行分の複数のデータを配列にそれぞれ格納 (3)格納したデータ(数値)をグラフ上にプロット というプログラムです。教えて頂きたいのは、(1)と(2)を実現するプログラムです。何冊かテキストを読み、書かれていたサンプルプログラムを打ち込んでみたんですが、どうも上手くいきません。 宜しくお願い致します。

  • VB 1対1の簡単なチャットプログラムを作ってます

    いつもお世話になってます。プログラミング初心者の学生です。 Visual Basic 2010 を使って下の画像のような簡単なチャットプラグラムを作ろうと思ってます。 フォームのデザインは出来ましたがコードは何も書けていません。 TCPを使うことは分かりましたが、MSDNを見ても説明が難しくてあまり理解できません。 1.TCPについて簡単に解説していただけませんか? 2.参考サイトを教えてください 3.もしよければ、サンプルコードを載せてください (チャット) プログラミング学んでる学生で、わからないことばかりです。 暇なときでもいいので、回答よろしくお願いします!!

  • PCにインストールしているプログラムのコードを開くには

    プログラミング初心者なのですが、PCにインストールしているプログラム(アプリケーション)のコードを開くには、どうすればいいのでしょうか。 ちなみに現在 Microsoft Visual Basic 2008 Express Edition とMicrosoft Visual C++ 2008 Express Edition をインストールしていますが、どうやったらいいか分かりません。上記で無理なら、適切なプログラミング言語やソフトを紹介してください。

  • プログラミング言語の使い分け

    当方、PerlとHSPを使って実際にプログラミングをしたことがあります。 Perlは今でも使っていますが、もちろんWindowsで動くアプリケーションには使用できません。 HSPは使い勝手が悪く、あまり使いたくありません。 そこで、新しく他の言語でプログラミングを始めようと思っています。 Visual Basic Visual C# Visual C++ これらの言語は機能面でどのように違うのか、プログラムの書き方(文法)はどう違うのかなどを教えてください。 (文法面はPerlと違って...Perlと同じで...というふうにPerlを交えていただければ理解しやすいと思います)

  • データベース読み込み→折れ線グラフの作成

    こんにちは。最近Visual Basicにおけるプログラミングを始めた者です。 現在、Excelにて作成したcsv形式のアンケートデータを読み込み、Visual Basic5.0 にて折れ線グラフに表示するものを作ろうと思っています。 どのようなデータベースかというと、 15種類の質問項目のそれぞれに7種類の選択式回答があり、その回答番号(1~7)を横並びにしたものです。 csvファイルの中身は 氏名,1,3,2,7,4,5,・・・・ といった形になっています 数字は15個並んでいます このデータをそれぞれの質問項目ごとに折れ線グラフにし、可視化したいと思っております。 この選択肢は4番の回答が多い、この選択肢は2番の回答が多い・・・といったことが見分けやすいと思ったので。 上記のようなことは可能でしょうか。 厚かましいようですが、もしよろしければサンプルとなるコードをお添え頂ければ幸いです。

  • 数値計算を始めたいのですが・・・

    もうすぐ大学2年生になる物理を専攻している学生です。 大学での物理を学び、コンピュータを用いて数値計算をしたいと思うようになりました。 中学生のときにC言語を独学で学んで言語について入門書レベルの理解はあるのですが、 実際の数値計算となると、アルゴリズムを学んだり、グラフや図形にしたりという作業が必要です。 質問したいことは大きく分けて2つです。 (1)中学生のときはコマンドプロンプトとフリーのテキストエディタで勉強していました。 しかし、大学で物理の数値計算をするとなればVisual stdioなどを用いてプログラミングしたほうがよいのでしょうか? ダウンロードしてみたのですが、今のところいろんなコマンドが多くて難しいです・・・ どちらのスタイルでプログラミングした方がいいかとかはあるのでしょうか? どうもCUIだと図形描画はできないようなのですが・・・そうなのでしょうか? (2)数値計算をしたとき、グラフやアニメーションにしたいと思うのですが、 WindowsAPI、Gnuplot、OpenGL、他にも色々あるみたいなのですが、 どのようなツールを使えばよいのでしょうか・・・? 色々調べてはみたのですが・・・ どちらか1つでもよいのでご教授ください。 お願いします。

  • VBでのプログラミングについて教えてください。

    VBでのプログラミングを学んでいる初心者です。 ファイル出入力の基礎を学んでいるところなのですが、 本に書いてある通りにコードを打ち込んで実行したら、 実行時エラー53 ファイルが見つかりません と表示されてしまいました。 エラーとされた部分のコードは以下の通りです。 Open "sample.txt" For Input As #1 本の指示通り、Windowsのメモ帳で作成したテキストファイルにsample.txtという名前を付けて保存しましたので、ファイルが存在しないということは無いはずなのですが…。 ネットで調べても解決策が見つからず困っています。 ご教授よろしくお願いいたします。

  • アプリケーションについて

    他のアプリケーションを、C言語で記述したもので制御できないでしょうか? 例えば、Microsoftのexcelのグラフ機能を使いたいときに、自分でプログラムを組んで、何かのデータをtext.xlsのファイルに保存したあと、手動で、グラフの機能を使うのではなく、保存し、グラフ作成が完了し、他のファイルに保存する一通りのプログラムはC言語でかけるのでしょうか? また、C言語でかけないものであれば、どの言語だとかけるのでしょうか?それとも無理なんでしょうか? 何かわかる方、よろしくお願いします。

専門家に質問してみよう