Линейная диаграмма с несколькими цветами для одной строки и нескольких значков

#reporting-services #powerbi #report #powerbi-desktop #powerbi-custom-visuals

#службы отчетов #powerbi #Сообщить #powerbi-рабочий стол #powerbi-настраиваемые визуальные эффекты

Вопрос:

нужна линейная диаграмма, как показано ниже, которая фильтруется по стране-> Клиенты-> Тип машины-> Машинная модель-> Детали.

Диаграмма представляет потребленный материал (в тоннах) машин по оси Y и оси X с течением времени (год-Месяцы-День).

Мои данные поступают из модели ML, в которой хранятся значения за последние 3 месяца и следующие 365 дней.

  1. Как я могу отобразить фактическое и прогнозируемое значение в одной строке разными цветами? Я не могу использовать две строки для представления этого.
  2. Как я могу отобразить несколько (около 100) значков (представленных в виде Xs на рисунке ниже) в одной строке, чтобы представить другое значение поля даты обслуживания деталей.

введите описание изображения здесь

Комментарии:

1. Я не могу использовать две строки для представления этого. — Почему? Не было бы полезно выделить, где фактические данные и прогнозы переключаются на диаграмме?

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

Ответ №1:

Вы можете сделать это довольно легко с помощью одного набора данных и одной строки, если вы правильно подбираете набор данных.

Я смоделировал небольшую выборку данных, используя следующее…

Предполагается наличие двух таблиц: одна с использованием материалов, а другая с днями обслуживания

 DECLARE @t TABLE(DateStamp date, Amount int)

INSERT INTO @t VALUES
    ('2021-01-01', 10),
    ('2021-01-02', 11),
    ('2021-01-03', 12),
    ('2021-01-04', 14),
    ('2021-01-05', 16),
    ('2021-01-06', 18),
    ('2021-01-07', 20),
    ('2021-01-08', 21),
    ('2021-01-09', 22),
    ('2021-01-10', 23),
    ('2021-01-11', 24),
    ('2021-01-12', 25),
    ('2021-01-13', 26)

DECLARE @m TABLE(DateStamp date)

INSERT INTO @m VALUES
    ('2021-01-01'),
    ('2021-01-02'),
    ('2021-01-06'),
    ('2021-01-07')


SELECT t.*, CASE WHEN m.DateStamp IS NULL THEN 0 ELSE 1 END as Maintenance
    FROM @t t 
        LEFT JOIN @m m on t.DateStamp = m.DateStamp
    
 

Используя это в качестве моего запроса к набору данных, я получаю следующие возвращаемые данные.

введите описание изображения здесь

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

Затем я щелкнул по строке серии и изменил следующие свойства…

Цвет

 =IIF(Fields!DateStamp.Value <= Today(), "Blue", "Red")
 

Тип маркера

 =IIF(Fields!Maintenance.Value=1, "Diamond", Nothing)
 

… и, наконец, установите размер производителя равным 15pt для наглядности в этом примере.

введите описание изображения здесь

Это дало мне следующий результат

введите описание изображения здесь