Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TChart. Значения по оси Y выходят за пределы, Дробные части не рисуются. 
:(
    Опции темы
sm1
Дата 8.4.2013, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



TChart. Значения по оси Y выходят за пределы графика.

Если минимальное и максимальное значение по оси Y у графика целые, а промежуточные значения дробные, то промежуточные значения выходят за пределы экрана (Происходит это из-за того, что TChart считает длину первой и последней метки, а промежуточные, видимо, не учитывает). Как этого избежать?

Добавлялось так:

Chart1->Series[0]->Add(0.0,"",clRed);
Chart1->Series[0]->Add(0.1,"",clRed);
Chart1->Series[0]->Add(0.2,"",clRed);
Chart1->Series[0]->Add(0.2323,"",clRed);
Chart1->Series[0]->Add(0.234566,"",clRed);
Chart1->Series[0]->Add(0.543234,"",clRed);
Chart1->Series[0]->Add(0.676756,"",clRed);
Chart1->Series[0]->Add(0.76756,"",clRed);
Chart1->Series[0]->Add(0.88856,"",clRed);
Chart1->Series[0]->Add(0.8996756,"",clRed);
Chart1->Series[0]->Add(0.96656,"",clRed);
Chart1->Series[0]->Add(1.0,"",clRed);

Chart1->LeftAxis->Increment=0.1888;

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  ch1.jpg 24,50 Kb
PM MAIL   Вверх
Poseidon
Дата 8.4.2013, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(sm1 @  8.4.2013,  03:33 Найти цитируемый пост)
Chart1->Series[0]->Add(0.0,"",clRed);
Chart1->Series[0]->Add(0.1,"",clRed);
Chart1->Series[0]->Add(0.2,"",clRed);
Chart1->Series[0]->Add(0.2323,"",clRed);
Chart1->Series[0]->Add(0.234566,"",clRed);
Chart1->Series[0]->Add(0.543234,"",clRed);
Chart1->Series[0]->Add(0.676756,"",clRed);
Chart1->Series[0]->Add(0.76756,"",clRed);
Chart1->Series[0]->Add(0.88856,"",clRed);
Chart1->Series[0]->Add(0.8996756,"",clRed);
Chart1->Series[0]->Add(0.96656,"",clRed);
Chart1->Series[0]->Add(1.0,"",clRed);

Chart1->LeftAxis->Increment=0.1888;


Уверен что разделом не ошибся? Больше на С-код похоже, а не на Delphi.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Poseidon
Дата 8.4.2013, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



А вообще что-то сам наделал. Только что попробовал. Ничего в настройках не менял, кроме добавления Series.

user posted image


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
sm1
Дата 8.4.2013, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



Смысл вопроса это не меняет. На дельфи это:

Chart1.Series[0].Add(0.0,'',clRed);
Chart1.Series[0].Add(0.1,'',clRed);
Chart1.Series[0].Add(0.2,'',clRed);
Chart1.Series[0].Add(0.2323,'',clRed);
Chart1.Series[0].Add(0.234566,'',clRed);
Chart1.Series[0].Add(0.543234,'',clRed);
Chart1.Series[0].Add(0.676756,'',clRed);
Chart1.Series[0].Add(0.76756,'',clRed);
Chart1.Series[0].Add(0.88856,'',clRed);
Chart1.Series[0].Add(0.8996756,'',clRed);
Chart1.Series[0].Add(0.96656,'',clRed);
Chart1.Series[0].Add(1.0,'',clRed);

Chart1.LeftAxis.Increment:=0.1888;

Смысл-то не в кода. Он понятен. Добавляются точки и меняется значение инкермент у оси, чтобы промежуточные значения оси были дробными. Остальное на скриншоте.

Добавлено @ 09:24
Цитата(Poseidon @ 8.4.2013,  09:17)
А вообще что-то сам наделал. Только что попробовал. Ничего в настройках не менял, кроме добавления Series.

user posted image


Спасибо за ответ. У меня следующие параметры графика:

  object Chart1: TChart
    Left = 32
    Top = 48
    Width = 400
    Height = 250
    BackWall.Brush.Color = clWhite
    BackWall.Brush.Style = bsClear
    Title.Text.Strings = (
      'TChart')
    LeftAxis.LabelStyle = talValue
    LeftAxis.MinorTickCount = 6
    LeftAxis.MinorTickLength = 3
    LeftAxis.RoundFirstLabel = False
    View3D = False
    TabOrder = 0
    object Series1: TLineSeries
      Marks.ArrowLength = 8
      Marks.Visible = False
      SeriesColor = clRed
      Pointer.InflateMargins = True
      Pointer.Style = psRectangle
      Pointer.Visible = False
      XValues.DateTime = False
      XValues.Name = 'X'
      XValues.Multiplier = 1
      XValues.Order = loAscending
      YValues.DateTime = False
      YValues.Name = 'Y'
      YValues.Multiplier = 1
      YValues.Order = loNone
    end
  end

То есть если и вверху и внизу  значения, длина которых меньше остальных, происходит неприятность. У Вас значение верхнее по длине такое же, как и в середине, поэтому не происходит такого эффекта.

Это сообщение отредактировал(а) sm1 - 8.4.2013, 09:25
PM MAIL   Вверх
Poseidon
Дата 8.4.2013, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(sm1 @  8.4.2013,  09:20 Найти цитируемый пост)
То есть если и вверху и внизу  значения, длина которых меньше остальных, происходит неприятность. У Вас значение верхнее по длине такое же, как и в середине, поэтому не происходит такого эффекта.
ОК

user posted image


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
sm1
Дата 8.4.2013, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



Да, попробовал тот же самый код из дельфи7 в ХЕ3 перенести и получилось то же, что и у Вас. Но при этом либо минимум, либо максимум не видны на графике. Так изящно в последующих версиях вышли из ситуации на первом скриншоте?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.