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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで横書き50行の漢字テストデータを縦書きのテスト問題にしたい。 6 2022/04/27 15:03
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) VBAで複数のExcelを1つのExcelにまとめる 1 2022/09/04 11:08
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) 【VBA】もし、値が0だったら左のセルと合わせて削除したい 3 2023/04/20 10:12
- Excel(エクセル) excelの列幅高さが勝手に変わる(特定のPCだけ) 8 2022/07/14 16:51
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
VBScriptでCSVファイルを読み出...
-
コンボボックスのインデックス...
-
C#でbyte配列から画像を表示さ...
-
配列の中の最大値とそのインデ...
-
Redim とEraseの違いは?
-
レコードセットの中身を配列に...
-
EXCEL VBAの課題です
-
エクセルでXY座標に並べられた...
-
構造体配列内の文字列検索のよ...
-
エクセル(VBA)の空白配列の削除...
-
グラフの「項目軸ラベルに使用...
-
free()関数の多用 と Segment...
-
excel vbaの配列なんですが・・・
-
複数のtextboxの処理を一括で行...
-
どこにどの画像が入ったか判定...
-
VBAにて、配列のデータを一度に...
-
Access レコードセットを動的配...
-
大量の変数を定義するにはどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
vba フィルター 複数条件 3つ以...
-
Dir関数で読み取り順を操作でき...
-
Excel2010のinputboxで複数デー...
-
配列の中の最大値とそのインデ...
-
構造体配列の特定のメンバーをF...
-
COBOLの基本的な事なので...
-
構造体配列内の文字列検索のよ...
-
コンボボックスのインデックス...
-
エクセルでXY座標に並べられた...
-
エクセル(VBA)の空白配列の削除...
-
Redim とEraseの違いは?
-
定数配列の書き方
-
VB6のメモリ解放に関して
-
CheckBoxの配列化
-
複数のtextboxの処理を一括で行...
-
Excelのメモリ(配列)の上限は2G...
-
大量の変数を定義するにはどう...
-
OutOfMemoryExceptionの回避策...
おすすめ情報