Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Пара вопросов по bar-chart

Доброго дня!

Прошу помощи по след. двум вопросам, связанным со столбчатыми диаграммами.

Исходные данные (модельный пример):

t1:

load * inline [

City, Month, expr

Tokyo, Jun, 156.12

Tokyo, Jul, 144.12

Tokyo, Aug, 133.12

Oslo, Jun, 256.12

Oslo, Jul, 244.12

Oslo, Aug, 233.12

Seoul, Jun, 122.12

Seoul, Jul, 111.12

Seoul, Aug, 100.12

];

Строю простейшую столбчатую диаграмму: Поля "City" и "Month" - это измерения. По полю "expr" создаю выражение sum(expr). Результат - на картинке ниже:

Здесь второе измерение "ушло" в легенду, а мне бы хотелось, чтобы это второе измерение отобразилось вдоль оси "Х", как на второй картинке (см. ниже). Вопрос №1: можно ли этого добиться и каким образом?

Далее. Добавляю еще одно выражение, например max(expr). В результате получаю то, чего хотел в первом вопросе (правда не таким способом ), т.е. второе измерение Month "переехало" из легенды на ось "Х", а в легенду записались выражения:

Здесь новая неприятность - выражения расположились в виде стека, т.е. одно над другим, а мне нужно, чтобы расположились группой, т.е. рядом друг с другом. Вопрос №2: как управлять стилем расположения столбцов диаграммы в данном случае?

P.S. Переключатель Grouped/Stacked на закладке Style в свойствах диаграммы эффекта не имеет.

Файл примера прилагаю.

Заранее благодарен откликнувшимся,

Олег.

1 Solution

Accepted Solutions
Sergey_Polekhin
Employee
Employee

Добрый вечер,

Логика диаграммы проста - пытаться отображать значения наиболее информативным образом с использованием заданных форм представления (способ отображения: столбец, линия и т.д.) и цветового деления. Согласен, что диаграмма не предоставляет всех возможных вариантов гибкости настроек, но ее логика ориентирована получение максимально быстрого и наглядного результата при минимальном количестве настроек пользователем. Поэкспериментировав, можно обнаружить простую логику работы диаграммы, зависящую от количества величин, отображаемых на диаграмме:

  1. Использование двух отображаемых величин (одного измерения и одной измеряемой величины (выражения)). В этом случае задействуется первый простейший уровень логики диаграммы, заставляя ее по сути рисовать два значения: измерение и измеряемую величину. По-умолчанию для этого достаточно рисовать значения измеряемой величины в виде одноцветных столбцов. Либо вы можете задать свою собственную, дополнительную логику цветового кодирования (это ваша степень гибкости).
  2. Использование трех отображаемых величин. В этом случае для наглядности диаграмма автоматически пытается использовать цветовое деление.
    • При использовании двух измерений, первое отображается по оси, второе - кодируется цветами. Вычисляемое значение - отображается столбцами разного размера.
    • По аналогии, если мы имеем одно измерение и два выражения, то измерение отображается по оси, а выражения кодируются разными цветами. Очевидно, что этот подход позволяет отобразить потенциально неограниченное количество выражений (каждое получит свой цвет).
    • При этом у вас остается незадействованной дополнительная степень гибкости диаграммы - использование отдельных столбцов для выражений или размещение их "стопкой"
  3. Использование четырех отображаемых величин, среди которых присутствуют два измерения и два или более выражений.
    • Для различения выражений ничего не остается, кроме как использовать цветовое деление.
    • Для отображения измерений ничего не остается, кроме как отобразить их оба (друг над другом). Хотя это и не наглядный вариант, но других - не остается.
    • Для ограничения размеров диаграммы и отображения максимального количества выводимых значений автоматически используется оставшаяся степень свободы - включается отображение "стопкой", позволяющее гарантированно отображать потенциально неограниченное количество выражений.

Описанная выше логика может нравиться или нет, но она обеспечивает прогнозируемость поведения диаграммы и возможность отображения неограниченного количества выражений (измеряемых величин), т.к. именно они обычно используются для анализа и сравнения. Для получения же необходимой степени гибкости управления измерениями у вас всегда остается куча вариантов, например, использование отдельных измерений, использование составных измерений (в вашем случае Город-Месяц), применение циклических групп, или применение всех вариантов вместе.

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

Применительно к вашему случаю я рекомендовал бы использование четырех вариантов (по убыванию сложности реализации):

  1. Использование составных измерений (см. пример)
  2. Использование варианта, предложенного Вадимом (Trellis)
  3. Использование вами же замеченной "хитрости" состоящей в задании второй измеряемой величины (что заставляет диаграмму использовать логику для отображения двух измерений и двух и более измеряемых величин). Для того, чтобы второе выражение не искажало значений автоматически формируемой стопки, его можно задать равным нулю.
  4. Создание собственного типа диаграммы (в виде Extension) с устраивающей вас логикой  .

С уважением,

Сергей Полехин.

View solution in original post

5 Replies
vadimtsushko
Partner - Creator III
Partner - Creator III

Не уверен, что это именно то чего вы хотели добиться - но может быть вам стоит попробовать Trellis charts:

На картинке я применил Trellis к вашей исходной диаграмме

2014-12-14 18-26-27 QlikView x64 - [C  Users Tsushko Downloads mock-up.qvw ].png

Not applicable
Author

Вадим, спасибо за ответ!

Да, вариант с Trellis вполне подходит с точки зрения "достаточности" получаемой картинки. И выражения (если их более одного) располагаются не "стеком", а "группой" - как и требуется..

Но... Хочется все таки решить задачу в исходной постановке, если это, конечно же, возможно.

С уважением,

Олег.

Sergey_Polekhin
Employee
Employee

Добрый вечер,

Логика диаграммы проста - пытаться отображать значения наиболее информативным образом с использованием заданных форм представления (способ отображения: столбец, линия и т.д.) и цветового деления. Согласен, что диаграмма не предоставляет всех возможных вариантов гибкости настроек, но ее логика ориентирована получение максимально быстрого и наглядного результата при минимальном количестве настроек пользователем. Поэкспериментировав, можно обнаружить простую логику работы диаграммы, зависящую от количества величин, отображаемых на диаграмме:

  1. Использование двух отображаемых величин (одного измерения и одной измеряемой величины (выражения)). В этом случае задействуется первый простейший уровень логики диаграммы, заставляя ее по сути рисовать два значения: измерение и измеряемую величину. По-умолчанию для этого достаточно рисовать значения измеряемой величины в виде одноцветных столбцов. Либо вы можете задать свою собственную, дополнительную логику цветового кодирования (это ваша степень гибкости).
  2. Использование трех отображаемых величин. В этом случае для наглядности диаграмма автоматически пытается использовать цветовое деление.
    • При использовании двух измерений, первое отображается по оси, второе - кодируется цветами. Вычисляемое значение - отображается столбцами разного размера.
    • По аналогии, если мы имеем одно измерение и два выражения, то измерение отображается по оси, а выражения кодируются разными цветами. Очевидно, что этот подход позволяет отобразить потенциально неограниченное количество выражений (каждое получит свой цвет).
    • При этом у вас остается незадействованной дополнительная степень гибкости диаграммы - использование отдельных столбцов для выражений или размещение их "стопкой"
  3. Использование четырех отображаемых величин, среди которых присутствуют два измерения и два или более выражений.
    • Для различения выражений ничего не остается, кроме как использовать цветовое деление.
    • Для отображения измерений ничего не остается, кроме как отобразить их оба (друг над другом). Хотя это и не наглядный вариант, но других - не остается.
    • Для ограничения размеров диаграммы и отображения максимального количества выводимых значений автоматически используется оставшаяся степень свободы - включается отображение "стопкой", позволяющее гарантированно отображать потенциально неограниченное количество выражений.

Описанная выше логика может нравиться или нет, но она обеспечивает прогнозируемость поведения диаграммы и возможность отображения неограниченного количества выражений (измеряемых величин), т.к. именно они обычно используются для анализа и сравнения. Для получения же необходимой степени гибкости управления измерениями у вас всегда остается куча вариантов, например, использование отдельных измерений, использование составных измерений (в вашем случае Город-Месяц), применение циклических групп, или применение всех вариантов вместе.

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

Применительно к вашему случаю я рекомендовал бы использование четырех вариантов (по убыванию сложности реализации):

  1. Использование составных измерений (см. пример)
  2. Использование варианта, предложенного Вадимом (Trellis)
  3. Использование вами же замеченной "хитрости" состоящей в задании второй измеряемой величины (что заставляет диаграмму использовать логику для отображения двух измерений и двух и более измеряемых величин). Для того, чтобы второе выражение не искажало значений автоматически формируемой стопки, его можно задать равным нулю.
  4. Создание собственного типа диаграммы (в виде Extension) с устраивающей вас логикой  .

С уважением,

Сергей Полехин.

Not applicable
Author

Сергей, спасибо за разъяснение!

Исчерпывающе!!!

С уважением,

Олег.

Anna_Klimkova
Employee
Employee

В дополнение к подробному описанию Сергея хочу напомнить про возможность выставить Стиль 3D, где у нас есть 2 оси для измерений и ось Z для выражений:

a3D.jpg

Но при большом количестве значений на оси Y такой график будет не очень наглядным.

Еще есть Grid chart (решетчатая диаграмма). Она как раз хороша для двух и трех измерений и одного выражения:

aGrid.jpg