我使用mschart控件画柱状图和折线图,有两个问题请教:
1,怎么通过代码更改柱状图的颜色?
我的每一个序列有两个柱子(columncount=2),颜色默认是蓝色和黄色,当数据满足一定条件时,我想让蓝色的柱子变为红色,黄色的柱子颜色不变,请问用代码怎么实现?
2,我的数据很多,那么X轴坐标全部变为竖的了,看不清楚,请问怎么解决?使用滚动条?怎么使用?
谢谢!!!这是你的回复:
MSChart1.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 100, 100, 100
MSChart1.Plot.SeriesCollection(2).DataPoints(-1).Brush.FillColor.Set 100, 100, 200
MSChart1.Plot.SeriesCollection(3).DataPoints(-1).Brush.FillColor.Set 100, 100, 300
MSChart1.Plot.SeriesCollection(1).Pen.VtColor.Set 200, 200, 200
可是这样的话所有SeriesCollection(1)的颜色都变了,我要的是只有满足条件的柱子的颜色变化,不满足条件的不变。怎么解决?
第2个问题怎么解决?
还有什么好的控件可以代替mschart吗?
1,怎么通过代码更改柱状图的颜色?
我的每一个序列有两个柱子(columncount=2),颜色默认是蓝色和黄色,当数据满足一定条件时,我想让蓝色的柱子变为红色,黄色的柱子颜色不变,请问用代码怎么实现?
2,我的数据很多,那么X轴坐标全部变为竖的了,看不清楚,请问怎么解决?使用滚动条?怎么使用?
谢谢!!!这是你的回复:
MSChart1.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 100, 100, 100
MSChart1.Plot.SeriesCollection(2).DataPoints(-1).Brush.FillColor.Set 100, 100, 200
MSChart1.Plot.SeriesCollection(3).DataPoints(-1).Brush.FillColor.Set 100, 100, 300
MSChart1.Plot.SeriesCollection(1).Pen.VtColor.Set 200, 200, 200
可是这样的话所有SeriesCollection(1)的颜色都变了,我要的是只有满足条件的柱子的颜色变化,不满足条件的不变。怎么解决?
第2个问题怎么解决?
还有什么好的控件可以代替mschart吗?
使用picture.line方法
有这方面的代码吗?可以实现类似mschart控件的柱状图和折线图。
我的时间很紧,自己也没画过。
Option Explicit
Private conn As ADODB.Connection
Private rs As ADODB.Recordset
结构
Private Type Student
ID As Integer
Name As String
Age As Integer
End TypePrivate Num As Integer
Private Students() As StudentPrivate Sub Command1_Click()Dim ll As Single
Dim i As Integer
Dim fg As Single
'画坐标系
ll = -Num / 10
'定义坐标
Picture1.Scale (ll, 20)-(6, -4)
'画坐标轴
Picture1.Line (0, 20)-(0, 0)
Picture1.Line -(Num, 0)im j As Integer
Dim lage As Integer
Dim txt As String
For j = 1 To Num
lage = Students(j).Age
'填充
Picture1.Line (j - 1, 0)-(j, lage), QBColor(j), BF
Picture1.Line (j - 1, 0)-(j, lage), vbBlack, B
'画age
txt = Format(lage)
Picture1.CurrentX = j - 0.5 - Picture1.TextWidth(txt) / 2
Picture1.CurrentY = lage + 1
Picture1.Print txt
'画姓名
txt = Students(j).Name
Picture1.CurrentX = j - 0.5 - Picture1.TextWidth(txt) / 2
Picture1.CurrentY = -0.5
Picture1.Print txt
Next j
End SubPrivate Sub Form_Load()
Set conn = New ADODB.Connection
Dim dbfilename As String
dbfilename = App.Path & "\chart.mdb"
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbfilename & ";Persist Security Info=False;"
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
rs.Open "select * from students", conn, 1, 3
Do While Not rs.EOF
Num = Num + 1
ReDim Preserve Students(1 To Num)
Students(Num).ID = rs.Fields("ID")
Students(Num).Name = rs.Fields("Name")
Students(Num).Age = rs.Fields("Age")
rs.MoveNext
LoopEnd Sub