MSchart

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

MSchart

Сообщение KPEATOP » 04.05.2010 (Вт) 15:37

Подскажите, пожалуйста, как в MSChart сделать вторую ось Y ?
У меня два ряда. Я их помещаю в MSChart1. Значения Х у этих двух рядов одинаковые, а значения Y - разные. Как сделать, чтобы значения Y второго ряда были на вторичной оси Y ?
Заранее сенкс!
Вечность пахнет нефтью

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: MSchart

Сообщение hclubmk » 17.05.2010 (Пн) 22:40

Изменить разметку второй оси:
Код: Выделить всё
   MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Auto = False
   MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Maximum = <понятно из контекста>
   MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Minimum = <понятно из контекста>
   MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MajorDivision = <понятно из контекста>
   MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MinorDivision = <понятно из контекста>

но значения второго ряда, по ходу, придется масштабировать руками.
Научились ли Вы радоваться трудностям?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: MSchart

Сообщение KPEATOP » 18.05.2010 (Вт) 9:40

Спасибо
Вечность пахнет нефтью

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: MSchart

Сообщение hclubmk » 18.05.2010 (Вт) 16:35

hclubmk писал(а):но значения второго ряда, по ходу, придется масштабировать руками.

Соврал.
Код: Выделить всё
MSChart1.Plot.SeriesCollection(<номер ряда>).SecondaryAxis = True

переразметку второй оси, в общем-то, можно и не делать (по желанию).
Научились ли Вы радоваться трудностям?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: MSchart

Сообщение KPEATOP » 19.05.2010 (Ср) 7:32

MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Auto = False
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Maximum = <понятно из контекста>
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Minimum = <понятно из контекста>
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MajorDivision = <понятно из контекста>
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MinorDivision = <понятно из контекста>
MSChart1.Plot.SeriesCollection(4).SecondaryAxis = True

Сделал так, никакой реакции. Все равно одна ось Y и второй ряд на первой оси Y. Ошибку никакую не пишет, как буд то бы все нормально, но эффетк нет.
Вечность пахнет нефтью

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: MSchart

Сообщение hclubmk » 19.05.2010 (Ср) 10:05

KPEATOP писал(а):второй ряд на первой оси Y

и
Код: Выделить всё
MSChart1.Plot.SeriesCollection(4).SecondaryAxis = True

:?:
так второй или четвертый?
Научились ли Вы радоваться трудностям?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: MSchart

Сообщение KPEATOP » 19.05.2010 (Ср) 10:31

Как правильно сказать? Один ряд(или один график) состоит из двух SeriesCollection. У меня два ряда (или два графика на одном). Поэтому у меня 4 SeriesCollection. Разве не так ? Для второй оси Y я разные свойства применять пробую (метки, толщина, цвет, и т.п и т.д). Она все равно никак не реагирует, хотя и ошибки не выдает. Она какая то не чувствительная :)
Как ее вообще изменить? Ее вообще не видно. Может какие то свойства MSChart ? может тип MSChart ?
Вечность пахнет нефтью

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: MSchart

Сообщение hclubmk » 19.05.2010 (Ср) 11:00

KPEATOP писал(а):Разве не так ?

Да ну!
Каждая серия определяет свой график.

Добавлено позже
Код: Выделить всё
MSChart1.chartType = VtChChartType2dLine ' задать тип
MSChart1.Plot.Axis(VtChAxisIdY2).AxisScale.Hide = False ' показывать вторую ось
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Auto = False ' отключить автомасштабирование второй оси
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Maximum = 20 ' максимум второй оси
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.Minimum = 0 ' минимум второй оси
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MajorDivision = 4 ' основных делений второй оси
MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale.MinorDivision = 2 ' вспомогательных делений второй оси
MSChart1.ColumnCount = 2 'два графика
MSChart1.RowCount = 3 ' по 3 точки
MSChart1.Plot.SeriesCollection(2).SecondaryAxis = True ' вторую серию -> на вторую ось (попробуй True и False и почувствуй разницу)
Научились ли Вы радоваться трудностям?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: MSchart

Сообщение KPEATOP » 19.05.2010 (Ср) 11:58

Я тебя понял. Ты используешь :
MSChart1.chartType = VtChChartType2dLine
У тебя по оси X просто порядковый номер 1,2,3,4 и т.д.

Я же использую:
MSChart1.chartType = VtChChartType2dXY
У меня же зависимость X от Y. Поэтому (я просто неправильно объяснил) У меня две зависимости, 4 SeriesCollection
Я хотел одну зависимость на одной оси Y, а вторую зависимость - по другой оси Y. Значения X у них одинаковые, поэтому ось X общая.
Так вот, у меня вторая ось Y вообще никак не проявляется, хотя ошибок не выдает. Вторая зависимость всегда ложится на первую ось Y.
Не знаю что делать.
Вечность пахнет нефтью

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: MSchart

Сообщение hclubmk » 19.05.2010 (Ср) 20:41

Мда, VtChChartType2dXY обрезанный :?
Если требования не слишком велики - рисовать самому, если нужно круто - смотреть в сторону профессиональных реализаций типа ProEssentials от GigaSoft, Graphics Server от Bits Per Second.
Научились ли Вы радоваться трудностям?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34

    TopList