2010-12-29 14 views
3

グラフ(DataVisualization.Charting.Chart)をプログラムで作成しています。これはスタックバーチャートです。asp.net charts:X軸と重複する凡例

また、凡例エントリをプログラムで追加しています。チャートの一番下に「Legend」を表示したい。

しかし、その間、凡例はグラフのX軸と重なって表示されます。ここで

コード私が使用していますさ:ステートメントの下

Private Function GetLegend(ByVal legendName As String, ByVal s As Single) As  System.Windows.Forms.DataVisualization.Charting.Legend 

Dim objLegend As System.Windows.Forms.DataVisualization.Charting.Legend = New System.Windows.Forms.DataVisualization.Charting.Legend() 

objLegend.Name = legendName 
objLegend.Font = New System.Drawing.Font("Verdana", s) 
objLegend.IsDockedInsideChartArea = False 
objLegend.Docking = Docking.Bottom 
Return objLegend 
End Function 

はレジェンドチャート

_msChart.Legends.Add(GetLegend("SomeValue1", 10.0F)) 

任意のアイデアに、何が欠落していることを追加しますか?凡例を一番下に表示したいが、X軸と重なってはならない。

答えて

2

今日は同じ問題がありました。追加してみてください:

objLegend.Position.Auto = true 
objLegend.DockedToChartArea = "yourChartAreaName" 

それは私を助けませんでしたが、これは役立つかもしれないことが分かりました。

私が実際に働いたのは、チャート領域を移動させて凡例のためのスペースを作って重複しないようにすることでした。

chart.ChartAreas[0].Position.Y = 15 

あなたが例えばchart.Sizeより短い20個のピクセルにそれを強制的に、代わりにそれをリサイズしてみてください:私の伝説はので、このコードは、私の仕事のトップにありました。

これが役に立ちます。

0

私は重複している凡例/グラフ領域の問題も抱えていましたが、ここでの他の提案では何の違いもありませんでした。私は、この問題は伝説のテキストの折り返しから2行に及んでおり、サイジングアルゴリズムはこれを考慮していないと考えています。

ここでのアイデアは、私が問題についてより明確に考えることができ、次のようにチャート領域のサイズと位置を制御することができました。

Chart1.ChartAreas[0].InnerPlotPosition = new ElementPosition(15, 5, 90, 75); 

あり、これらのパラメータの多くのインテリセンスではありませんが、同様に、私は推測する可能性があるので、パラメータはすべて総チャート領域のパーセンテージである(私は当初、彼らはピクセル値かもしれないと思ったし、いくつか非常に奇妙な結果を得ました)。上に書いたことは、プロット領域を、チャート画像の左端から15%、上から5%下に開始し、幅90%、高さ75%に設定することです。

関連する問題