По фактическим значениям мы имеем двухцветный график-гистограмму (положительные значения синие, отрицательные соответственно красные), полученный по средствам инверсии для чисел < 0. Но как сделать так, чтобы в легенде отображалось тоже 2 цвета (синий и красный)? А то как видите отображается только синий. В данной задаче важно чтоб была 1 гистограмма и 1 точечная с гладкими кривыми (программа на VBA), поэтому замена гистограммы двумя графиками не представляется возможным.
Столкнулся с такой проблемой, как построение 2 различных графиков в одном. Т.е. имеем программу, строящую график по данным, полученным экспериментально (строится гистограмма) и необходимо создать график фильтра на основной гистограмме (но уже в виде точечной кривой).
В самом файле Excel это получается выполнить (см приложение), а программа упорно делает 2 график в виде гистограммы.
Код программы
Код
Private Sub CommandButton2_Click()
Dim mychart As Chart, fname As String
fname = ThisWorkbook.Path & "\Данные.xlsx"
With Workbooks.Open(fname, 0)
Set mychart = Worksheets(1).ChartObjects(1).Chart
mychart.SetSourceData Source:=Worksheets(1).Range("B:B")
fname = ThisWorkbook.Path & Application.PathSeparator & "\picture.gif"
mychart.Export Filename:=fname, Filtername:="gif"
Image1.Picture = LoadPicture(fname)
.Close saveChanges:=False
End With
End Sub
Private Sub CommandButton3_Click()
Dim mychart As Chart, x As Single, y As Single, v As String, s As String
a = InputBox("Введите коэффициент фильтрации (в диапазоне от 0 до 1)")
If a >= 0 And a <= 1 Then
Cells(1, 5).Value = a
v = "=$E$1*$B2+(1-$E$1)"
s = "=$E$1*$B3+(1-$E$1)*$C2"
Cells(2, 3).Formula = v
Cells(3, 3).Formula = s
Cells(3, 3).AutoFill Range(Cells(3, 3), Cells(Cells(Rows.Count, "B").End(xlUp).Row, 3))
Set mychart = Worksheets(1).ChartObjects(1).Chart
mychart.SetSourceData Source:=Worksheets(1).Range("B:B,C:C")
fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif"
mychart.Export Filename:=fname, Filtername:="gif"
Image1.Picture = LoadPicture(fname)
Else
MsgBox "Внимание! Введите число от 0 до 1", 16
End If
End Sub
Посмотрите пожалуйста, может подскажет кто. Спасибо.