asp.net을 사용하여 아래 코드에서 생성 된 것과 유사한 차트를 생성합니다. 각 범례 항목은 세 줄을 차지하지만, 심볼이 수직으로 내가 생각하는, 중앙 정렬 주의 불분명 같습니다asp 만들기 : 차트 범례 기호 수직 정렬
그것의 첫 번째 줄에 나란히 앉아 있도록 가능한 수직 기호를 정렬하는 것입니다 텍스트 (예 : 첫 번째 파란색 선은 "Some name - 1"옆에 있어야합니다)? 또는 어떤 종류의 구분 기호를 구성 할 수 있습니까? 어느 쪽이든 세로로 정렬하는 것을 선호하지만 두 옵션을 함께 사용하면 탁월합니다.
전체 데모 코드 :
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim chart1 As New Chart
Page.Controls.Add(chart1)
chart1.ChartAreas.Add(New ChartArea)
Dim l As New Legend
chart1.Legends.Add(l)
Dim dt As New DataTable
dt.Columns.Add(New DataColumn With {.ColumnName = "ColA", .DataType = GetType(System.String)})
dt.Columns.Add(New DataColumn With {.ColumnName = "ColB", .DataType = GetType(System.Int32)})
dt.Columns.Add(New DataColumn With {.ColumnName = "ColC", .DataType = GetType(System.Int32)})
dt.Columns.Add(New DataColumn With {.ColumnName = "ColD", .DataType = GetType(System.Int32)})
Dim rnd As New Random
For i As Integer = 1 To 5
Dim dr As DataRow = dt.NewRow
dr.Item("ColA") = String.Format("{0} {1}", "Some name - ", i.ToString)
dr.Item("ColB") = rnd.Next(0, 100)
dr.Item("ColC") = rnd.Next(0, 100)
dr.Item("ColD") = rnd.Next(0, 100)
dt.Rows.Add(dr)
Next
Dim gv As New GridView
Page.Form.Controls.Add(gv)
gv.DataSource = dt
gv.DataBind()
For Each dr As DataRow In dt.Rows
Dim s As New Series
s.Name = dr.Item("ColA").ToString
s.ChartType = SeriesChartType.Line
s.LegendText = s.Name & Environment.NewLine & "Line 2" & Environment.NewLine & "Line 3"
chart1.Series.Add(s)
For i As Integer = 1 To dt.Columns.Count - 1
Dim p As New DataPoint
p.SetValueY(Convert.ToInt32(dr.Item(i)))
p.AxisLabel = dt.Columns(i).ColumnName
Trace.Warn(dt.Columns(i).ColumnName & " = " & Convert.ToInt32(dr.Item(i)).ToString)
s.Points.Add(p)
Next
Next
chart1.DataBind()
End Sub
아니 정확히 대답을하지만, 범례 항목의 각 후 빈 줄을 추가 시도? 그러면 더 분명 해져야합니다. – nothrow
감사합니다 Yossarian. 예, 나는 그것을 시도했습니다. 차트에 많은 데이터가있을 때 더 잘 보이지만 범례의 크기를 상당히 확장 할 수 있습니다. 그래도 고마워; 가치있는 기부 – EvilDr