Автор Тема: Подскажите софт для создания графика  (Прочитано 780 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Всем привет!

В чём можно сделать аналогичный график (см. вложения) ?

Попробовал в gnuplot, получается не очень (см. вложения)...
Кириллица отображается кракозябрами, линии сетки не знаю как убрать у риски "$i день". Да и показалось немного неудобным делать в нём, хотелось бы просто передать массив значений и получить сразу график, а тут пришлось выгадывать, где разместить "$i день", формировать файл со значениями... в LO Calc проще, но такой график там сделать не могу. Возможно, я неправильно что-то делаю в gnuplot и из-за этого мне не понравился этот софт.

Также требуется дополнительно: сделать подписи для точек, выборочно. В gnuplot вообще не нашёл такой возможности.

Посоветуйте хорошую софтину, пожалуйста ;-)
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Может, вектором экспортировать и поправить в LO Draw или Inkscape?
Андрей Черепанов (cas@)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Ну, в LO можно примерно так изготовить...

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Может, вектором экспортировать и поправить в LO Draw или Inkscape?
Нет, мне нужен освоить сам принцип построения подобных графиков. То есть имеем входной набор данных -- значения высот, на выходе должен получиться подобный график.

В LO Calc получается так (см. вложения). Во-первых, начальные точки дней находятся не на самой сетке, поэтому между днями "зазоры". Во-вторых, если писать категории (один, два, три, четыре) для каждого дня, то они попадают автоматически на ось X, а мне это не нужно, названия этих категорий нужно добавить только надписями на сами точки выборочно. В-третьих, я не могу провести линию (на рисунке красная линия параллельная оси Y).
В остальном возможностей больше, чем у gnuplot и проще в реализации.

Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Ну, в LO можно примерно так изготовить...
Кажется, в очередной раз, ваша подсказка мне помогла!
Сейчас попробую подкрутить немного...
Спасибо!
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Если надо притиснуть график к осям, можно такой финт провернуть.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Уже притиснул сам)

Также, чтобы не закрывать каждую ненужную надпись на оси X, можно выставить отображение надписей зигзагом и ненужные или также перекрыть одним большим блоком, либо подчистить только низ графика в растре. Тогда не будет проблем с перекрытием, когда дней будет больше или меньше.

В целом доволен результатом. Немного заморочено всё равно получилось, но что поделать... зато всё красиво и в одном месте сделано! Ещё раз спасибо!

[решено]
« Последнее редактирование: 04.09.2017 10:33:52 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
В целом доволен результатом.
OK.
Кстати подобными линиями удобно делать выноски к точкам кривой.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Кстати подобными линиями удобно делать выноски к точкам кривой
Ага, теперь буду знать и стараться не забыть. :-)
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Немного заморочено всё равно получилось, но что поделать...
Появилось время немного подумать, решил заняться работой скульптора (т.е. взять камень и отсечь всё лишнее). :-)
Лишней оказалась маскировка границ дополнительными осями — достаточно просто выключить линии у области построения диаграммы. Кроме того опция "подписи данных" позволяет обойтись без химии и в то же время очень гибко управлять подписями. В этом случае каждой подписи можно задать произвольное значение и расположение относительно точки привязки. Если же дополнительной линии задать отдельный столбец координат X, то подписи можно привязывать к произвольным точкам на оси X (которых нет на графике) [bla3a]. В результате получаем более простое и красивое решение. :-)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
маскировка границ дополнительными осями
Насчёт этого не понял...

опция "подписи данных"
Мне нужно название категорий вывести на точки графика. Но если подписи располагать внизу, то эти же категории потом выводятся и рядом с точками. У меня не получилось задать несколько названий категорий: отдельно для точек и отдельно оси X.

Я ещё погляжу чуть позже повнимательней файлы, сейчас пока вполне устроил предыдущий вариант.
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
маскировка границ дополнительными осями
Насчёт этого не понял...
В моих предыдущих примерах серые линии границ сверху и справа закрыты белыми дополнительными осями. Это не нужно, границы можно просто выключить. Возможно вы так сделали сразу.

опция "подписи данных"
Мне нужно название категорий вывести на точки графика. Но если подписи располагать внизу, то эти же категории потом выводятся и рядом с точками. У меня не получилось задать несколько названий категорий: отдельно для точек и отдельно оси X.
Если вам ещё и точки самого графика нужно подписать, тогда точкам линии которая используется для подписи оси х задайте не совпадающие с графиком значения X (на незаметную величину, например ±0,001)
Нет, не так. Хитрее. Первое значение категории соответствует каждой первой точке на каждой кривой, и далее по порядку. Поэтому, чтобы на линии не было показано начало списка категорий надо добавить в начале этой линии соответствующее число точек и вывести их за пределы области построения. Тогда получится.
« Последнее редактирование: 08.09.2017 08:19:00 от stranger573 »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Возможно вы так сделали сразу.
Теперь понял.

Хитрее.
Ага...

Можно в принципе натравить просто на пустой диапазон для X и Y, например, на "C2:C6". То есть вставить его в начало ряда, а через ";" пошли значения.
Так решение выглядит элегантней, но ещё более замороченней :-)
Сноси Винду, переходи на Линукс ! :)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Можно в принципе натравить просто на пустой диапазон для X и Y
Да, пустые значения тоже принимает. Так даже писанины меньше. Хотя в некоторых версиях LO/OOo возможно будут видимы в точке (0;0). Помнится, интерпретация пустых ячеек уже менялась. Хотя в случае проблем, всегда можно вписать явные значения.