Asm/C++/Delphi/Py/PHP/VBA
|
|
1 | |
TChart - подписи по осям29.11.2017, 23:14. Показов 4135. Ответов 7
Метки нет (Все метки)
Я добавляю точки через AddXY и хочу, чтобы подписи были с градацией по целым числам (вообще, у меня значения и X, и Y целые). И чтобы не было по 3 одинаковых значения (типа 0 0 0 1 1 1 2 2 2 3 3 3). Как это сделать?
И можно ли изменить толщину линии графика?
0
|
29.11.2017, 23:14 | |
Ответы с готовыми решениями:
7
TChart в Лазарусе: задать шаг по осям Цвет текста меток по осям в компоненте TChart Подписи к значениям TChart по оси Х Подписи к осям |
Супер-модератор
|
|
29.11.2017, 23:24 | 2 |
Можно. Для
серии выставить нужную толщину через LinePen.Width (я правильно понимаю, что это TLineSeries?)
Можно на скрине показать, что есть сейчас, и чего хотелось бы получить?
0
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
29.11.2017, 23:42 [ТС] | 3 |
Вот так сейчас:
Вот так надо: Т.е. чтобы сетка была точно на целых значениях, а не где-то в промежутках (по сути же, на первой картинке 1 - это не 1, а 0.845, например, или 1.453; и 45, 46, 46, 47 - это по факту что-то вроде 45.1, 45.9, 46.7, 47.4; просто формат задан целый: %0:.0n )
0
|
Супер-модератор
|
||||||
30.11.2017, 11:42 | 5 | |||||
Хм... Смотри. Я делаю так:
1) чтобы не было дублирующихся значений по осям - можно даже без изменения Format-а просто написать вот такой обработчик OnMarkToText для оси:
2) ну, а для того, чтобы показать линии грида только там, где стоят отметки (то есть, на целых значениях по осям) я обычно добавляю динамически TConstantLine-ы (хочешь - сразу при старте приложения, ты же примерно все равно знаешь, в каком интервале у тебя изменяются значения на графике, хочешь - храни список уже добавленных TConstantLine, а при очередном добавлении через AddXY в свою серию просто смотри, если добавляемое по X или по Y значение еще не присутствует в списке - то добавить; 10 строк кода все удовольствие), а стандартную отрисовку гридов отключаю. Как-то вот так получается:
0
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
30.11.2017, 12:11 [ТС] | 6 |
Вариант через OnMarkToText вообще не подходит, т.к. эта целая отметка всё равно будет не там, где надо, а мимо целого значения. Т.е. чарт будет вызывать OnMarkToText для AMark = 0.8, 1.6, 2.4, 3.2, например... А мне надо, чтобы линии отрисовывались точно в целых позициях.
Динамическое добавление TConstantLine-ов похоже на костыль. Неужели нет реально способа сделать это, просто задав нужные параметры осей???
0
|
Супер-модератор
|
|
30.11.2017, 12:31 | 7 |
С тобой спорить - себе дороже. Зря связался, тебя все равно не переубедишь, ты даже не пробуешь а уже отметаешь то, что
тебе непонятно. Ну, делай сам, как знаешь. Чтобы все было ТОЧНО там, где тебе хочется.Мне, например, непонятно, почему это то, где у меня в отметках оси стоит единица - это неточно, хотя линия TConstantLine с позицией, равной ровно 1-це, идеально совпадает с этой отметкой. А то, где ты хочешь показать - это почему-то должно быть точно, хотя оно ни фига ни с чем не совпадает. Потому что первый вариант предложил не ты, а второй - ты? Всё, как всегда... P.S. Да ты еще и читать не умеешь, как выяснилось. На код вообще не смотрел, что-ли? Ну, вызвался метод при AMark = 0.8, и что? Что вернется в качестве AText? Метод все равно будет вызываться , хочешь ты этого или нет, обрабатываешь ты его или нет, просто можно отсечь то, что тебе не нужно. А уж чтоб метод вообще не вызывался тогда, когда значение не является целым... Исходники чарта открыты. Бери, переписывай под себя. Больше никому такие извраты не нужны.
0
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
30.11.2017, 17:59 [ТС] | 8 |
С чего ты взял, что я не пробовал? Я попробовал и получилось вот что (левая ось)...
Все координаты на графике (X и Y) целые. Соответственно, тут видно, что линии идут мимо графика. И подписей нет. Может, надо какие-то опции особые в LeftAxis.Interval выставить – не знаю... Ты сам-то понимаешь, что пишешь? Как то, что выводится в качестве AText должно повлиять на позицию (координату) линии, которая будет отрисована?
0
|
30.11.2017, 17:59 | |
30.11.2017, 17:59 | |
Помогаю со студенческими работами здесь
8
Подписи к осям на графике Формат значений по осям в tchart TChart - Формат подписей по осям Измение подписей к координатным осям TChart Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |