
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1で解答入れたものです。
外出予定あって取り急ぎいれたのですが、良く考えると、「配列」と言う意味が良く判らない。(1)グラフは通常2次元グラフを考えていると思う。
散布図に適したデータなら、X軸、Y軸の1組のデータで1点
を表すとして、この「点」座標データ組が数百万あるということですか。それであればエクセルに拘らず、多数のデータを扱える専用グラフソフトを探されては。
(2)プログラムで言う配列は、そのプログラムの中に入って
初めて使えるものだから、そのまま外部記録メディアに記録できるものでは無い。エクセルに配列がありますとは何を言うのか不明。(TRNSPOSE関数、MMULT関数、MINVERSE関数を使う場合には、数値を「配列」として扱う必要があるという関数と利用者の約束ごとはあるが、グラフがデータを配列として要求するかどうかはグラフソフトの問題。)
---
(1)としてVBで下記はいかがですか。安上がりです。
Private Sub Form_Click()
a = 0.1: b = 0.1
Open "c:\my Documents\sct1.csv" For Input As #1
p01:
If EOF(1) Then GoTo end1
Input #1, X1, Y1
Form1.PSet (X1 * a, Y1 * b), vbRed
GoTo p01
end1:
Close #1
End Sub
PSetは1点は微小ですが、何百万組データがあるのならこのほうが良かろう。エクセルなんぞだと、ポイントだけで画面が
埋まってしまうのではと心配しました。
微小点が何度も集まると、濃いように見えるのではないでしょうか。雲のように。
a,bは画面に点が収まるように縮小・拡大するものです。
Form1はPicture1コントロールでも良かろう。
表・軸見だし・凡例はテキストボックスを貼り付けてどうですか。
X,Y軸は直線を貼り付けてはどうですか。
上記sct1.csvは例として
1230,2340
2323,1120
3456,4535
4256,1345
5234,3451
2453,4561
のようなものです。
早速の回答ありがとうございました。
2つの配列というのは、X軸データで1つ・Y軸データで1つの配列を考えていました。
何をやりたかったかというと、画像の色分布を2次元の散布図で表示させようとしていました。
Excel VBAで、RGBの各画素のデータから、色のXY座標に変換した結果をそれぞれの配列に入れておき、その分布をグラフ表示させようと考えていました。
(分布が集中している色は濃く表示されるだろう位の軽い気持ちで・・・)
No.1で回答していただいたように、いったんX軸、Y軸に相当するデータを
セルに書き込んでそれをグラフ化してみたのですが、やってみて、無謀なことをしていたなぁと気がつきました。
imogasiさんご指摘のように、分布の集中を濃さで表現するにはExcelのグラフでは無理があることを実感しました。
無理やりやろうとしたら、色座標でヒストグラムを作成し、3次元的なグラフにしないといけないですね。
imogasiさんから頂いた、貴重なアドバイスを元に、もう少し構成を考えてみようと思います。
ほんとうにありがとうございました。
No.1
- 回答日時:
私は下記のことを思いつきます。
(1)エクセルのアドインソフトを購入入手する。
WEB検索で、グラフ アドイン または グラフ Addinで検索して、市販、フリー、シェアウエアを探して
見てください。多量データ数に対応したソフトがあるかも
知れない。
(2)エクセル等のソフト部品を利用する。
VBAなども含む。
(3)エクセルの手操作
(4)その他-データを合理的・理論的に間引く
(3)について
これが一番いいのですが。系列というのがあります。
散布図の場合重ねグラフのようになりそう。
A列1-65000行を第1系列にする。
B列1-65000行を第2系列にする。
第1系列=(行数-A列データ)、第2系列=(行数-B列データ)にすると、第2のプロットの色は変わりますが、重ねたように見えるようにグラフを書きます。(小数例でしかやってません。一度試してみてください。)操作は
右クリック―元のデータ-系列-XとYの値-追加。
ただこれも256行に余裕が内状態ではダメかも知れない。
(2)のVBAは
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B1:B5"),
の=右側がRange指定になっていて、データベースを指定出来る様になっていないと思う。(今後出来るという答えが出るかもしれないが)。またデータ以外だけを、部品として利用するのは
初心者には難しい(APIとかクラスとか)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Redim とEraseの違いは?
-
COBOLの基本的な事なので...
-
ジャグ配列生成時の1オリジン
-
C#,繰り返し処理での最大値の取...
-
構造体配列内の文字列検索のよ...
-
VB.NETの配列にExcelから読み込...
-
大量の変数を定義するにはどう...
-
ポーカーを作りたいのですが・・・
-
(VBA) 配列の文字列を昇順で並...
-
レコードセットの中身を配列に...
-
スロットマシンの判定方法(VB...
-
VBAで配列引数を値渡しできない...
-
VBからID3タグをいじる方法
-
クリスタルレポート(8.5)の書式...
-
DataGridViewに複数テーブルの...
-
ACCESSのレコード転送について
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
【ExcelVBA】値を変更しながら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
OutOfMemoryExceptionの回避策...
-
配列の中の最大値とそのインデ...
-
複数のtextboxの処理を一括で行...
-
Dir関数で読み取り順を操作でき...
-
VB6からの移行したいけど、VB.N...
-
COBOLの基本的な事なので...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
EXCEL VBAの課題です
-
Redim とEraseの違いは?
-
VB.NETの配列にExcelから読み込...
-
VBAでMODE関数をつくる
-
VB.NETにて、構造体へデータを...
-
1ビットごとの配列を作りたい
-
VBAで配列引数を値渡しできない...
おすすめ情報