Excelでグラフを描画することは可能ですか?どうやって? Excelの描画間隔チャート
答えて
これは楽しいものでした。 Excelで既存のボックス&ウィスカーチャートの機能を拡張する良い方法があるかどうかはわかりませんが、幸いなことに、すばやく汚い方法で、散布図を作成することができました。基本的には、間隔に沿って繰り返し、散布図に表示するのに十分なポイントを選択して、ボックスウィスカーと区別できないようにします。すべてのインターバルを異なるシリーズにするため、色分けなどの書式を設定して区別しやすくすることもできます。
ここに私のデータの一部(あなたは線の太さのようなものを変更するには根本的な散布図で使用されるマーカーを変更することができます)のための最終結果です:
コードがでフォーマットされた表を探していますが、各シリーズの名前と各ディメンションの最小/最大の列を区切ります。ここで入力テーブルをフォーマットする方法は次のとおりです。
そして最後に、ここで私はそれを生成するために実行するマクロです:
' Build and display an "Interval Chart"
Public Sub MakeIntervalChart()
Dim inRow As Long, outRow As Long, lastRow As Long, startRow As Long
Dim interX As Double, interY As Double, intervalAmt As Double
intervalAmt = 0.01 ' CHANGE ME
' Source/Destination Worksheet Parameters (CHANGE ME)
Dim wsSource As Worksheet, wsDest As Worksheet
Set wsSource = Worksheets("Data")
Set wsDest = Worksheets.Add()
wsDest.Name = "IntervalChart"
' Create output chart
Dim boxChart As Chart
Set boxChart = wsDest.Shapes.AddChart2(240, xlXYScatter).Chart
boxChart.HasLegend = True
outRow = 1
lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
For inRow = 2 To lastRow
' Retrieve current interval (CHANGE ME)
Dim seriesName As String
Dim minX As Double, maxX As Double, minY As Double, maxY As Double
seriesName = wsSource.Cells(inRow, 1)
minX = wsSource.Cells(inRow, 2)
maxX = wsSource.Cells(inRow, 3)
minY = wsSource.Cells(inRow, 4)
maxY = wsSource.Cells(inRow, 5)
startRow = outRow
'intervalAmt = (maxX - minX)/50.0
' Top and Bottom of box
For interX = minX To maxX Step intervalAmt
wsDest.Cells(outRow, 1) = seriesName
wsDest.Cells(outRow, 2) = interX
wsDest.Cells(outRow, 3) = minY
outRow = outRow + 1
wsDest.Cells(outRow, 1) = seriesName
wsDest.Cells(outRow, 2) = interX
wsDest.Cells(outRow, 3) = maxY
outRow = outRow + 1
Next
'intervalAmt = (maxY - minY)/50.0
' Left and Right of box
For interY = minY To maxY Step intervalAmt
wsDest.Cells(outRow, 1) = seriesName
wsDest.Cells(outRow, 2) = minX
wsDest.Cells(outRow, 3) = interY
outRow = outRow + 1
wsDest.Cells(outRow, 1) = seriesName
wsDest.Cells(outRow, 2) = maxX
wsDest.Cells(outRow, 3) = interY
outRow = outRow + 1
Next
' Add new series (box)
With boxChart.SeriesCollection.newSeries()
.Name = seriesName
.XValues = wsDest.Range("B" & startRow & ":B" & outRow - 1)
.Values = wsDest.Range("C" & startRow & ":C" & outRow - 1)
End With
Next
End Sub
あなたは、入力/出力シート名のようなものを変更したいと思います入力テーブルの予想されるフォーマット(あなたが自分のフォーマットに縛られたくないと仮定して)。また、データの0.01パラメータを調整する必要があります。私はあなたのサンプルデータの種類と一緒に使用できるようになる、非常に小さな間隔でそれを残しました。この増分値を必要に応じて0.01以外の値に微調整するか、コメント行のコードintervalAmt = (maxX - minX)/50.0
でコードを使用し、50.0の値を微調整します(これはボックスの各セグメントに描画するマーカーの数になります) 。これらの値を調整することに注意してください。直線を達成するために必要なマーカーよりも多くの時間を無駄にしてしまいます。
ありがとう、これは私が探していたものです。 – user1723583
JavaScriptにはHighchartsやD3などの強力なライブラリがあり、このようなグラフを描くことができ、FunfunはExcelでJavaScriptをコード化することができます。ウェブサイト上Highchartsでこのソリューションを試してみてください、そして、それはあなたが望むものかどう教えてください:
https://www.funfun.io/1/edit/59f9d122ff5aa66c5ca8b9ee
あなたが解決策に満足したら、あなたは直接のおかげで、同じリンクであなたのExcelにそれを読み込むことができますthe Funfun Excel add-in。ここではスクリーンショットです:あなたが望むようもちろん
、Excelでデータとコードを編集することができます。
- 1. Excelグラフのx軸間隔
- 2. JavaFXチャートAPIを使用してチャート画像を描画
- 3. キャンバス上の描画間隔を設定する(C#)
- 4. 異なる間隔でmatplotlibを描画する方法
- 5. geom_densityで描画間隔を指定する
- 6. iOSチャートの結合チャートの描画順序を変更
- 7. Teechartを使用して時間間隔でyaxisを手動で描画する
- 8. ブートストラップ画像の間隔
- 9. NPOIを使用して、Excelでチャート軸を描画する方法は?
- 10. ブートストラップカルーセルの画像間の間隔
- 11. ExtJS 4描画とチャート作成の例が描画されていない
- 12. Excelチャートを画像に変換する
- 13. SSRSの奇数間隔の問題チャートの凡例
- 14. HighStockチャートのgetハンゲブラウザの新しいデータは、10秒間隔
- 15. キャンバス - 描画時間
- 16. OpenGL描画時間
- 17. チャートの間隔を設定します.net mvc3
- 18. IOSチャートのx軸に適切な間隔を得る
- 19. matlabの間隔間隔
- 20. Highstockチャートのギャップの時間間隔の比率を維持する
- 21. JAVAFXチャートを使用してチャートに複数の軸を描画する方法
- 22. 柱状チャートの棒間の間隔を削除する方法SSRS 2012
- 23. Excelチャートの軸スケール
- 24. iOSのチャート:グリッド線の描画の問題
- 25. 画像カルーセル間隔の問題
- 26. jQueryの画像負荷間隔
- 27. 等間隔での画像生成
- 28. PowerPointチャートのプレースホルダにExcelチャートをコピー
- 29. チャートや他のコントロールの上に描画する方法
- 30. boyshのローソク足チャートを描画するためのpandasデータフレーム
基礎となるデータがどのように見えるん何これらの長方形のカップルのために? –
実際には、データは数字の間隔です。各インターバルの下限と上限は、Excelの隣のセルに配置されます – user1723583
長方形の幅は何になりますか? –