Комбинированная диаграмма

Автор eeigor, 2 сентября 2022, 14:07

0 Пользователи и 1 гость просматривают эту тему.

eeigor

Все вопросы в файле.
У меня не получается построить комбинированную диаграмму по основным и дополнительным осям.

Неясно как, добавляя ряд, привязывать его к определенным осям. К тому же у меня задействованы 2 дополнительные оси, а настроить дополнительную ось X никак не получается (автоматически дублирует основную).
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

economist

#1
Мне кажется "злостно" комбинировать неправильно (и смешивать средние и медианы). А если и делать, то лучше в matplotlib на python (псевдокод):

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv('D:/in.csv')
df = df.T # транспонировали
df.col0.plot.line(marker='D')
df[[col1, col2, col3]].boxplot()
plt.savefig('D:/out.png', transparent=True) # или даже svg

PS в matplotlib можно делать несколько основных и несколько дополнительных осей Y, но любой тренер будет на такое ругаться, т.к. нечитаемо.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

eeigor

#2
@economist, мне надо именно в Calc. Там очень много работы для него – весь интерфейс на готовых листах. И согласитесь: анализ данных при помощи диаграмм – это одна из основных задач Calc'а.
Добавление одной горизонтальной линии никак не влияет на восприятие диаграммы.

Среднее значение в примере означает средний балл за класс, а медиана показывает «наполняемость ящика»: из 50% класса, заключённых в ящике, 25% оценок в баллах выше медианы и 25% ниже. Медиана при этом вообще может пройти по верхней или нижней границе ящика. Ящик – это тот состав (50%), на который нацелен учитель, а по 25% сверху («маячки») и снизу («отстающие»), то есть «усы», – это те, кто требует индивидуального подхода.

Когда личный столбик достижений ученика (в примере не показано) совмещается с квартильной диаграммой класса, то очень многое можно сказать о том, где находится ученик. Это пример анализа ситуации «без слов».

UPD
У меня есть «трюки» и с наложением двух диаграмм друг на друга. Примечательно, что Excel при экспорте (сохранении) такой диаграммы «подтягивает» все слои, а на выходе – уже совмещённый (склеенный) рисунок. Как поведёт себя Calc в этой ситуации, пока не знаю...
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

kompilainenn

Цитата: eeigor от  2 сентября 2022, 14:07а настроить дополнительную ось X никак не получается
Не предусмотрено дизайном, можно создать только дополнительную ось Y
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

economist

Тоже пытался делать наложением, сползало, тупило... - забил. Оказалось гораздо проще макросом импортировать готовый PNG/SVG, Py-макрос можно внедрить прямо в ODS через APSO. Знаю целый КБ который GNUPLOT юзает с такое же целью, я же после написания обертки для matplotlib/seaborn/altair/plotly/hvplot в Python - в Calc диаграммы вовсе перестал рисовать.

Визуализации не входят в задачи Calc, это факультатив. Меня удручает как все в нем переверстывается при добавлении данных, и идеальную диаграмму построить по сути низзя, а построив - легко вмиг потерять.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

eeigor

#5
@kompilainenn, хотелось бы выяснить, где баг, а где отсутствие функционала. Я продолжаю экспериментировать...

Вообще, дальнейшее развитие Calc'а не может идти без должного совершенствования двух сервисов: сводная таблица и диаграммы.

Я по-прежнему считаю, что электронная таблица – это, по преимуществу, средство не ввода/хранения данных, а их всестороннего анализа, и диаграммы – это основной функционал (как и сводные таблицы).
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#6
Неужели @kompilainenn прав (ответ #3)?
На скриншоте 2 диаграмма связана с дополнительной осью Y (выбор - на скриншоте 1). Основная и дополнительная оси X имеют разный масштаб, но мы отчетливо видим (диапазон данных: точки с координатами 0;61 и 100;61), что график выстроен по основной оси X. А надо по дополнительной. В Excel выбор дополнительной (точнее вспомогательной) оси означает сразу выбор двух дополнительных осей (флажок "Вспомогательная ось").

В связи с этим возникает резонный вопрос: а для чего здесь (в Calc) нужна дополнительная ось X?
И если ее использование не предусмотрено дизайном, как пишет @kompilainenn, то и лучше убрать ее совсем, чтоб не "смущать" народ. Если только смысл ее не в том, чтобы отображать ось сверху.

Я не склонен называть это багом. Скорее - неразвитость интерфейса. Диаграммы, как и сводный таблицы, требуют серьезной доработки функциональности. Сегодня это два достаточно примитивных функциональных средства. Это не претензия.

P.S. А тем временем в школе снесли Windows и установили AltLinux, в качестве офисного пакета временно выбрали Р7-Офис, но потом перейдут на LibreOffice. Сложнее всего отказываться от того, к чему уже успел привыкнуть...

UPD: Ссылки
https://ask.libreoffice.org/t/can-i-have-two-x-axis-in-a-chart/41866
https://ask.libreoffice.org/t/is-there-a-way-to-change-the-values-in-the-secondary-x-axis-of-a-column-and-line-chart/53851
https://ask.libreoffice.org/t/calc-secondary-x-axis-for-multiple-datasets/35713

Анализ ситуации сделал меня "менее критичным": Excel допускает некие пользовательские комбинации, в которых графики по основным и дополнительным осям живут "своей жизнью". Но такая комбинация, скажем так, не есть часть обязательного набора рабочих функций (ибо, как правило, порождает неоднозначность восприятия картинки, пусть и не в моем примере).
Поэтому вполне можно наложить две диаграммы, сгруппировать их и экспортировать как одно целое.

Самое главное, что построение квартильной диаграммы в Calc возможно.
https://wiki.documentfoundation.org/Documentation/HowTo/Calc/BoxplotWithWhiskers
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

kompilainenn

Вторая ось Х действительно просто дублирует первую ось Х, находясь в верхней части диаграммы. Но настроить ей свой масштаб или привязать к ней другие данные не получится. Такое возможно только для второй оси Y (настройка которой это дурной неочевидный квест)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

economist

Цитата: eeigor от  2 сентября 2022, 17:18дальнейшее развитие Calc'а не может идти без должного совершенствования двух сервисов: сводная таблица и диаграммы.

У Calc "все еще спереди",  есть куда расти. Но если посмотреть на уже существующие инструменты для EDA как D-Tale, pandas_profiling, sweetviz и др. - то мощь этих инструментов, особенного первого, потрясет.

Из-за того что они выдают живой HTML с реактивным содержимым - реализация даже части такого в Calc покажется неразумной тратой сил.

Очень важной мне показалась чья-то мысль что графики для первичного анализа (EDA), для дэшбордов, статей и для презентаций - не просто разные. Первые - обязаны быть интерактивными, последние - не могут ими быть. Первые почти всегда корявы, "на посмотреть", последние - обязаны быть безупречными. Первые с бокс-плотами, последние - без. А все что посредине - градации этих крайностей.

Так вот, вместить всё это в Calc или ждать что это сделают разрабы - нереально. Проще пользоваться скриптом, который:
- берет данные из ODS и кладет их в Pandas DataFrame
- рендерит по нему HTML с десятками/сотнями графиков в авторежиме
- дает возможность затянуть часть графиков назад в ODS/ODT/ODP/ODG-файл.

И все это в несколько строк, 90% которых берутся из документации к модулям.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

eeigor

#9
@economist, я с интересом просмотрел предложенный материал (упомянутые инструменты). А с корреляционной матрицей приходилось плотно работать. Строил сам. А тут – в автомате!

Но в Calc, что называется, труба пониже, дым пожиже.
Это разные ниши. Мой проект нацелен на анализ результатов при помощи столбчатой и квартильной диаграмм + распределение частот (гистограмма). Основная работа – это сохранение диаграмм на диске, вывод диаграмм в Impress (для публичной демонстрации) и в Writer (для компактной печати), а далее отправка диаграмм родителям согласно расчету рассылки. Данные живут не более 2-х лет (10-й класс немного и в основном 11-й) – накапливаются, потом со сдачей ЕГЭ утрачивают актуальность. Учитель заполняете только столбик с баллами за новую диагностическую работу, всё остальное должен сделать Calc как master-приложение. Никакой базы данных нет. Если классов несколько, то и файлов Calc с приложением столько же.

С Impress не работал. С Writer приходилось. БОльшую сложность представляет задача с заменой Microsoft Outlook. Есть готовые решения с использованием Mutt. Но при открытии Thunderbird вся рассылка должна отобразиться.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#10
Непросто, но посильно.
Есть нюанс: я не нашел, как через GUI присвоить разным рядам разные типы диаграмм, однако программный интерфейс это позволяет. Поэтому делал эту работу в Excel, а потом импортировал в Calc. Затем замещал встроенную таблицу данных своими диапазонами данных на листе, не меняя типы диаграмм для рядов данных.
На скриншоте ниже ряды "Ученик" и "За класс в среднем" лежат в одной области построения, и это разные типы диаграмм. При попытке сменить в Calc тип для выбранного ряда происходит смена типа для всех рядов, хотя выбран вполне определенный ряд.

Вопрос. В Excel есть режим выбора объектов (можно скрыть, отобразить, и выбрать, если не ошибаюсь). Здесь не видел.
Мне надо выбрать несколько диаграмм (2-3) и сгруппировать их. Как их выделить (щелкнуть), если они лежат одна под другой?
Возможно, надо уменьшить ширину верхней диаграммы, а после группировки выделить верхнюю и восстановить ширину обратно.

Цитата: eeigor от  2 сентября 2022, 15:33Когда личный столбик достижений ученика совмещается с квартильной диаграммой класса, то очень многое можно сказать о том, где находится ученик. Это пример анализа ситуации «без слов».
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#11
С некоторого времени сводные таблицы работают с именованными диапазонами, и это здорово!
Работают ли диаграммы в Calc? Или всё ещё нет?.. Если нет, то при изменении источника данных придётся рассчитывать и присваивать новый диапазон в абсолютных ссылках. Это неудобно.

В Excel такие диаграммы становятся саморасширяемыми, поскольку диапазон вычисляется именованной формулой.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

kompilainenn

Диаграммы, подобные приведённой выше, не читаемы абсолютно. Смешались люди кони, что называется (ИМХО конечно же)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

eeigor

#13
Цитата: kompilainenn от 11 сентября 2022, 21:44Диаграммы, подобные приведённой выше, не читаемы абсолютно.
Поспешный вывод.
Диаграмма выше называется так:
Результаты выполнения учеником диагностических работ (ДР) по математике в таком-то классе на фоне успеваемости класса

Она вполне читабельна и опробована в течение 8 лет (Excel). Непонимание вызвано тем, что квартильные диаграммы сложны для восприятия, если с ними не сталкивались. Это то, что называется "на фоне успеваемости класса". Она таит в себе колоссальный объём полезной информации, в том числе и для принятия решения, надо только уметь её читать. Благодаря этой диаграмме удалось включить в учебный процесс всех "стейкхолдеров" (заинтересованных лиц): прежде всего, администрацию (которая, в действительности, не заинтересована в этом, ибо лишается возможности сделать крайним учителя, а вынуждена делить с ним ответственность за результат), а также родителей учащихся (те реагируют незамедлительно: вставляют "по полной", нанимают репетитора). И дело пошло на лад... А раньше крайним был учитель. Всегда. Несмотря на то, что набор в классы ведёт администрация исходя из принципа "подушевого" финансирования, то есть комплектуют классы "под завязку" и часто кем попало, лишь бы не потерять в бюджетных деньгах. Теперь учитель просто делает срез знаний учащихся, и администрация видит итоги своей работы. И это при зарплате: завуч - 300 000, а директор - 500 000 рублей в месяц (Москва). Вопрос администрации типа "почему не поставили в известность" отпадает сам собой. Информация накапливается, результат заранее прогнозируется и, как правило, очевиден... Потому что все осведомлены на длительном отрезке времени (выполняется регулярная автоматическая рассылка родителям диаграмм учащихся с нарастающим итогом, а также текущего отчета на почту администрации). И учитель получает возможность спокойно работать.

P.S. Эта диаграмма - часть большой работы, представленной на всероссийском конкурсе "Учитель-новатор", который проходил несколько лет назад в Анапе. А сама работа имеет зарегистрированное авторское свидетельство. Вот эту работу и надо перевести в Calc, который будет использоваться как мастер-приложение.

Но вопрос был другой: касательно абсолютных ссылок в источнике диаграммы и возможности её "саморасширения".
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

economist

#14
Сводные диаграммы по Источникам данных в Calc - саморасширяются вместе с данными. Их можно запрашивать с соседнего листа BASIC-методом doImport(), главное не забыть про ESCAPE_PROCESSING (на Форуме писал об этом).

Предположу что некоторые типы диаграмм в Calc допускают ссылки на целые столбцы (игнорят пустые яч.), но, скорее всего, это не касается бар-чартов (столбиков) итп. диаграмм, ориентированных не на числовые данные, а по категориальные. Такое поведение свойственно многим другим "графопостроителям" (R, Matlab, Pandas итд), и именно оно вызывает трудности при комбинировании, особенно если вмешалась ось дат/времени. В примере #10 по сути ось X - это ось времени, временной ряд, но подписанный ДР-ками.

Насчет самой комби-диаграммы из #10: она с т. зр. дата-аналитики, безусловно хороша. Например, по боксам - из нее очевидно что начиная с теста ДР 11.5 (четыре правых теста) - наблюдается значительный негативный рост разброса успеваемости (рост длины усов, уменьшение межквартильного интервала, размера ящика по высоте).

Это депрессивные признаки:
- растущего непонимания новых тем (если тесты включают новые темы). Или несбалансированность подачи материала при повторении старых, давно изученных тем;
- смены педагога (подходов в образовании. стандартов итп.)
- 2/10 теста едва выше Допустимого уровня (нормы) - это очень мало, класс отстает(или это класс "Ы"). Или система оценок очень строгая/субъективная (если она не автоматизирована, или наоборот стала таковой "на ходу").

Эта диаграмма читаема, но точно предъявляет к читающему ее высокие требования (5 из 10 - учителей не справятся).

Что можно улучшить на пути к "нобелевке по педагогигке"? Я навсегда пришел к "автоматическим" заголовкам диаграмм, с текстовым "выводом", после прочтения которого - половина пользователей сами диаграммы уже не смотрит. При этом привычные "дата-журнализмы" вида "Динамика...", "Показатели...", "Структура...", "Соотношение...", "Top-5..." - сохранены, они начинают заголовок и являются важным "якорем" настройки внимания.

То есть авто-заголовок делится на 3 части:
Тематический заголовок: Динамический заголовок
технический заголовок
Естественно, все это выводится с помощью UDF из макроса. И только "тематический заголовок", например "Динамика продаж", - задается как аргумент. Остальные фразы - самовычисляются из самих данных.

Пример:
Динамика продаж: объем удвоился за 5 лет
           Сумма по полю сумма (по годам)

Это я к чему: комбинирование средней линии с ящиками и барами - сложно, мою UDF для подобных случаев нужно дорабатывать, а это, по-опыту, верный признак нагрузки "выше среднего" для читателя. И "накручивать" диаграмму дальше уже будет за гранью читаемости.

Можно ли в авто-заголовок вынести вывод о резком ухудшении показателей последних 4-х тестов - думаю, можно. Но UDF для этого д.б. очень универсальной, работать и по рублям, и по тоннам, и по оценкам. Задача, безусловно, интересная и полезная. Она налагает высокие требования к стандартизации данных (с этим все у всех плохо, даже в бухучете). Но надежда есть :-)
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...