グラフについてどなたか助けてください。
散布図を作っているのですが、下記の条件でY軸を決めたいのですが
どのように設定すればよいのでしょうか?
データ:A:120,B:121,C:123,D:123,E:125,F:126の場合(Y軸:値 X軸:A-F)
1. データは絶対に0にならないので、0を表示したくない。
2. データの平均値をY軸の中心にして散布させたい。
軸の書式設定で最小値、最大値のチェックを外し自分で最小値と最大値を
入力する方法も考えましたが、データの最大値及び最小値が、変化する場合
再度設定する必要があるのでこの手間を省きたいと考えています。
よろしくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
はい。
出来ます。
下記のように 追加してください。
尚、表示形式には、自信がない([h]"°"mm"'"SS"''" を張り付けただけです。)ので、違っていましたら修正してくださいね。
また、マクロの記録で、トレース(記録)して見ると いろいろ出来ますので 試して 見ては、どうでしょうか??。
追加、先の回答で、この 「マクロの保存先」は、作業中のブックにします。
としましたが、
個人用マクロに保存先を選ぶと あなたのPCにマクロが、登録され エクセルのBookに関係なく 個人用マクロ( personal.XLS )に入っている マクロが、実行出来ますよ。
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = My_AVG - My_R
.MaximumScale = My_AVG + My_R
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
' ここから下は、追加部分です。
Selection.TickLabels.NumberFormatLocal = "[h]""°""mm""'""ss""''"""
' この上が、新規追加部分です。" が、両端に1個 づつ多いですが、
' これは、文字列として 設定しないと いけないので削除しては
' いけませんよ。
End Sub ' ここは、いままでの部分です。 ブログラムのしめくくりです。
余談ですが、PCの調子が悪く週末かかりっきりで修復していました とのことですが、
今後調子が、悪くなったら
クリーンアップ センターを利用してください。(他にもいろいろありですよ。)
http://onecare.live.com/site/ja-JP/center/cleanu …
PC にはたくさんの不要なファイルが保存されています。害のないファイルもありますが、PC の処理速度を遅くしたり、PC 上で行われた操作を盗み見る悪質なファイルもあります。
不要なファイルが PC の中に散乱していませんか?
無料のクリーンアップ スキャンを使用して、コンピュータの処理速度を遅くする不要なファイルを検索し、削除することができます。
No.5
- 回答日時:
補足説明のメールが、届いてなくて回答が、遅くなりました。
1.実際のy軸には[h]"°"mm"'"SS"''"の表示形式を使用したいのですが
2.グラフ内のフォントの変更をしたいのですが
回答;
1.y軸の数字の部分を選択して、右クリックメニューから軸の書式設定を選択します。
次に、表示形式をタブから選択してユーザー定義を左の選択メニューから選び [h]"°"mm"'"SS"''"を 種類の直下のボックスに書き込むか、コピーして貼り付けます。 最後に OK ボタンを押して 終わりです。
2.変更したい部分の文字を選択して 上記1 同様にしてフォントのタブを選択します。
ここで、好きなフォントを選択して OK ボタンを押して 終わりです
これらは、マクロの実行後 いつでも変更できます。
いつもご回答ありがとうございます。PCの調子が悪く週末かかりっきりで修復していました。初めに、ご回答いただいた軸の表示形式の件ですが、現在教えていただいた様には設定してあります。質問の仕方が悪かったですね。この作業を頂いたマクロに組み込むことは可能でしょうか?毎回グラフを作成した後この作業は手間になってしまいます。
No.4
- 回答日時:
一応完成しましたので、 試してください。
右の URLから http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/i …
マクロの自動記録と実行を読んで、ください。
読み終わったら
2.メニューバーの【ツール】→【マクロ】→【新しいマクロの記録】を選択します。
【マクロの記録】ダイアログが表示されますので、「マクロ名」「マクロの保存先」を確認して、【OK】をクリックします。
注意; この 「マクロの保存先」は、作業中のブックにします。
この後、マウスを適当にいじっても いじらなくても 【記録】ツールバーの【記録終了】ボタンをクリックします。
4.【Alt】+【F11】でVisual Basic Editor (以下VBEと表記します)を開きます。
(メニューバーからは、【ツール】→【マクロ】→【Visual Basic Editor】を選択します)
標準モジュールのModule1にMacro1が記録されました。
Excel(エクセル) VBA入門:目次 を押して
*****
戻って VBE(Visual Basic Editor/VBエディタ)の使い方 を読みます。
コードの記述、表示、および編集を行います。
プロジェクト エクスプローラでフォーム/モジュールをダブルクリックするか、選択して[コードの表示] ボタンをクリックします
コードの一番上に
Option Explicit の文字が、ありますので、
キーボードの7の上の文字 [']を左端につけて
'Option Explicit とします。
そして、その下の コード(文字を削除します。)
または、コード全部を削除します。
次に 下記 コードをコピーして貼り付けます。
' 使用方法と 注意事項
' データの最初のセルを アクティイブにして 実行する
' データの数は、制限なし
' データの並びは、縦方向、横方向を問わない。
Sub 散布図ぐらふ()
Dim Hx As Long, Vy As Long
Dim My_Cell_Add As String 'アクティイブ セルの Addressを確保
Dim Data_XY As Long ' データ数を確保
Dim Houkou As String ' データが、どの方向に 並んでいるかを保存
Dim myRange As Range
Dim My_MAX As Variant ' 最大値
Dim My_MIN As Variant
Dim My_AVG As Variant
Dim My_R As Variant ' ばらつき幅
Dim My_Sheets As String
My_Sheets = ActiveSheet.Name
ActiveCell.CurrentRegion.Select
Hx = ActiveWindow.RangeSelection.EntireColumn.Count
Vy = ActiveWindow.RangeSelection.EntireRow.Count
If Hx > Vy Then
Data_XY = Hx
Houkou = "H"
Else
Data_XY = Vy
Houkou = "V"
End If
My_Cell_Add = Selection.Cells.Address(fase, False, xlA1, True)
Set myRange = Selection.Cells
My_MIN = Application.WorksheetFunction.Min(myRange)
My_MAX = Application.WorksheetFunction.Max(myRange)
My_AVG = Application.WorksheetFunction.Average(myRange)
If Abs(My_AVG - My_MAX) > Abs(My_AVG - My_MIN) Then
My_R = Abs(My_AVG - My_MAX)
Else
My_R = Abs(My_AVG - My_MIN)
End If
Charts.Add
ActiveChart.ChartType = xlXYScatter
If Houkou = "V" Then
' データが縦になっている
ActiveChart.SetSourceData Source:=Sheets(My_Sheets).Range(My_Cell_Add), PlotBy:= _
xlColumns
Else
' データが横になっている
ActiveChart.SetSourceData Source:=Sheets(My_Sheets).Range(My_Cell_Add), PlotBy _
:=xlRows
End If
ActiveChart.Location Where:=xlLocationAsObject, Name:=My_Sheets
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "タイトル"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X数値軸"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y数値軸"
End With
'
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = My_AVG - My_R
.MaximumScale = My_AVG + My_R
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
End Sub
貼り付けが、終わったら 保存しましょう。
マクロの自動記録と実行 に戻り
メニューバーの【ツール】→【マクロ】→【マクロ】を選択します。
散布図ぐらふ を選択して 実行ボタンを押します。
以上です。
分らない時は、聞いてください。
しばらくは、締め切らない方が 良いでしょう。
No.3
- 回答日時:
ある程度 作成しました。
検討待ち部分をいじってみてください。
引き続き 修正しますがね。
VBA は、ある程度 解るのでしょうか??。
****************************
' データの最初のセルを アクティイブにして 実行する
' データの数は、制限なし
Sub 散布図ぐらふ()
Dim Hx As Long, Vy As Long
Dim My_Cell_Add As String 'アクティイブ セルの Addressを確保
Dim Data_XY As Integer ' データ数を確保
Dim Houkou As String ' データが、どの方向に 並んでいるかを保存
Dim myRange As Range
Dim My_MAX As Variant ' 最大値
Dim My_MIN As Variant
Dim My_AVG As Variant
Dim My_R As Variant ' ばらつき幅
ActiveCell.CurrentRegion.Select
Hx = ActiveWindow.RangeSelection.EntireColumn.Count
Vy = ActiveWindow.RangeSelection.EntireRow.Count
If Hx > Vy Then
Data_XY = Hx
Houkou = "H"
Else
Data_XY = Vy
Houkou = "V"
End If
If Application.ReferenceStyle = xlR1C1 Then
My_Cell_Add = Selection.Cells.Address(fase, False, xlR1C1, True)
Else
My_Cell_Add = Selection.Cells.Address(fase, False, xlA1, True)
End If
Set myRange = Selection.Cells
My_MIN = Application.WorksheetFunction.Min(myRange)
My_MAX = Application.WorksheetFunction.Max(myRange)
My_AVG = Application.WorksheetFunction.Average(myRange)
If Abs(My_AVG - My_MAX) > Abs(My_AVG - My_MIN) Then
My_R = Abs(My_AVG - My_MAX)
Else
My_R = Abs(My_AVG - My_MIN)
End If
Charts.Add
ActiveChart.ChartType = xlXYScatter
If Houkou = "V" Then
' データが縦になっている
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("I4:I9"), PlotBy:= _
xlColumns
Else
' データが横になっている
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(My_Cell_Add), PlotBy _
:=xlRows
End If
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "タイトル"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X数値軸"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y数値軸"
End With
'
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = 90 '検討待ち
.MaximumScale = 200 '検討待ち
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlCustom
.CrossesAt = 100 '検討待ち
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
End Sub
この回答への補足
早速、分からないながら頂いたVBA実行してみました。散布図の枠組み(軸を含み)出来ましたが、難点か問題があります。VBAは分からないので失礼な書き方がありかと思いますが、お許しください。
1. 当初の質問では、分かりやすいようなデータを書きましたが、実際散布されるデータは角度表示(##°##'##")を使用しています。実際の数字は、時間の数値を軸の表示形式で[h]"°"mm"'"SS"''"としていますので、実際のy軸には[h]"°"mm"'"SS"''"の表示形式を使用したいのですが。。
2. MinimumScale = 90 '検討待ち. MaximumScale = 200 '検討待ちにはあるフィールドに入力されているデータでも構いません。(もしかしたらこちらのほうがいいかもしれません。
3. グラフ内のフォントの変更をしたいのですが、教えていただけませんか?
よろしくお願いします。
VBAありがとうございます。
私はVBAは、分かりません。本日、色々なHPをみてみましたが、簡単に理解できるものではないようですね。。このような聞き方大変申し訳ないとは思いますが、頂いたVBAをどのように活用したらよいでしょうか?
大変申し訳ありません。もう少し教えてください。
No.1
- 回答日時:
通常の方法では、無理があるので、マクロで、データをソートして
平均値と最大値、最小値を求め
データの偏りを修正して(データの偏りの大きい方に合わせ)
注釈:平均値が、必ず データの中心にくるとは、断言出来ないので
このずれを補正しないと いけない。
グラフを作成する方法が、良いかと思います。
マクロでの回答は、だれかが、してくれるでしょう。
わたしが、作成しても良いですが、スタミナがないもので今回は、
見送りにさせて頂きます。
尚、誰も、回答してくれないときは、考えます。
回答いただいてありがとうございました。出かけていたのでお礼のメッセージが遅くなってしまいました。
前回一度質問を一度書いたのですが、解答いただけなかったのでもう一度投稿してみました。
私には、ハードルが高そうです。現在に至っても他の誰も回答いただけないので出来ましたら、再度お助けいただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) 図のような散布図の作り方を教えてください。 1 2022/07/19 11:52
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
- 統計学 統計学の問題です よろしくお願いします 代表値 次の15件のデータについて,以下の問いに答えよ。 結 1 2023/01/31 18:53
- 統計学 統計学の問題です よろしくお願いします 代表値 次の15件のデータについて,以下の問いに答えよ。 結 5 2023/01/31 23:35
- 統計学 母集団分布を平均 μ, 分散 σ2 の正規分布と想定し, 母集団から無作為抽出した標本のデータ(標本 4 2023/01/30 20:25
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- 統計学 風速を1秒刻みで推定する方法 6 2023/03/03 11:58
- 数学 数学 2変数データで、「相関係数=−1」の散布図を書く際 写真に これら5組のデータの散布図を描くと 4 2023/02/15 10:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
Powerpointでランダムな数字の...
-
VBAに詳しい方教えてください。
-
VBAを使ってエクセルシート...
-
VBA[Private Sub]のコードをシ...
-
エクセル vba クリック~離し...
-
ファイル名を今日の日付、時刻...
-
htmlまたはJavascriptからファ...
-
エクセルシートをまとめて印刷...
-
Pictures.Insertメソッド⇒Shape...
-
ピボットグラフの書式の固定に...
-
【ExcelVBA】クエリの更新とピ...
-
別ブックからユーザーフォーム...
-
Word VBAでWindows media playe...
-
Wordのマクロから書式(O)⇒箇条...
-
ユーザフォームをどの画面から...
-
グラフに条件付書式を設定でき...
-
wordのマクロで縮小して貼り付...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
ファイル名を今日の日付、時刻...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
VBA[Private Sub]のコードをシ...
-
エクセルシートをまとめて印刷...
-
ピボットグラフの書式の固定に...
-
最初の1回のみにボタンクリッ...
-
VBAを使ってエクセルシート...
-
【ExcelVBA】クエリの更新とピ...
-
別ブックからユーザーフォーム...
-
Powerpointでランダムな数字の...
-
エクセルのマクロでSelection.S...
-
どのドキュメントは暗号化され...
-
Pictures.Insertメソッド⇒Shape...
-
エクセルワークシート上に印刷...
-
Excelのラジオボタンにチェック...
-
エクセル2007 テキストボ...
-
エクセル vba クリック~離し...
-
ユーザーフォームを「Esc」キー...
おすすめ情報