#reporting-services #powerbi #report #powerbi-desktop #powerbi-custom-visuals
#службы отчетов #powerbi #Сообщить #powerbi-рабочий стол #powerbi-настраиваемые визуальные эффекты
Вопрос:
нужна линейная диаграмма, как показано ниже, которая фильтруется по стране-> Клиенты-> Тип машины-> Машинная модель-> Детали.
Диаграмма представляет потребленный материал (в тоннах) машин по оси Y и оси X с течением времени (год-Месяцы-День).
Мои данные поступают из модели ML, в которой хранятся значения за последние 3 месяца и следующие 365 дней.
- Как я могу отобразить фактическое и прогнозируемое значение в одной строке разными цветами? Я не могу использовать две строки для представления этого.
- Как я могу отобразить несколько (около 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 для наглядности в этом примере.
Это дало мне следующий результат