0 / 0
Go back to the English version of the documentation
Widok Wizualizacja
Last updated: 07 lip 2023
Widok wizualizacji Decision Optimization

Za pomocą opcji Decision Optimization experiment Visualization viewmożna skonfigurować graficzną reprezentację danych wejściowych i rozwiązań dla jednego lub kilku scenariuszy.

Widok wizualizacji jest wspólny dla wszystkich scenariuszy w Decision Optimization eksperyment.

Na przykład na poniższym obrazku przedstawiono domyślny wykres słupkowy, który jest wyświetlany na karcie rozwiązania dla przykładu używanego w kursie Rozwiązywanie problemów z dietą i model: problem z dietą.

Panel wizualizacji przedstawiający rozwiązanie na wykresie tabelarskim i słupkowym

Widok Wizualizacja ułatwia porównywanie różnych scenariuszy w celu sprawdzania poprawności modeli i decyzji biznesowych.

Na przykład w celu wyświetlenia dwóch scenariuszy rozwiązanych w tym przykładowym przykładzie z dietą można dodać kolejny wykres słupkowy w następujący sposób:
  1. Kliknij widget wykresu i skonfiguruj go, klikając ikonę ołówka.
  2. W edytorze widgetu Wykres wybierz opcję Dodaj scenariusz i wybierz opcję Scenariusz 1 (przy założeniu, że bieżący scenariusz ma scenariusz 2), tak aby użytkownik miał na liście zarówno scenariusz 1, jak i scenariusz 2.
  3. W polu Tabela wybierz opcję Dane rozwiązania i z listy rozwijanej wybierz pozycję Rozwiązanie .
  4. W panelu wykresu słupkowego wybierz opcję Malejąco dla opcji Kolejność kategorii, Oś Y dla Typ paska , a następnie kliknij przycisk OK , aby zamknąć edytor widgetu Wykres. Następnie zostanie wyświetlony drugi wykres słupkowy pokazujący wyniki rozwiązania dla scenariusza 2.
  5. Ponownie dokonaj edycji wykresu i wybierz @Scenario w polu Podziel według na panelu wykresu słupkowego. W takim przypadku można uzyskać oba scenariusze na tym samym wykresie słupkowym:

Wykres z dwoma scenariuszami wyświetlanym na jednym wykresie..

W edytorze widgetu Wykres można wybrać wiele różnych typów wykresów.

Alternatywnie, korzystając z widgetu Wykres Vega, można również wybrać opcję Dane rozwiązania > rozwiązanie , aby wyświetlić te same dane, wybrać wartość i nazwę w polach x i y w sekcji Wykres w edytorze widgetu Wykres Vega. Następnie w sekcji Mark (Zaznacz) wybierz @Scenario (Kolor) dla pola koloru. Ten wybór powoduje, że poniższy wykres słupkowy przedstawia dwa scenariusze na tej samej osi Y, wyróżniające się różnymi kolorami.

Wykres Vega pokazujący 2 scenariusze.

W przypadku ponownego edytowania wykresu i wybrania opcji @Scenario dla aspektu kolumny można uzyskać dwa scenariusze na oddzielnych wykresach obok siebie w następujący sposób:

Wykresy Vega przedstawiające 2 scenariusze obok siebie.

Można użyć wielu różnych typów wykresów, które są dostępne w polu Mark w edytorze widgetu Wykres Vega.

Istnieje również możliwość wybrania karty JSON we wszystkich edytorach widgetów i skonfigurowania wykresów za pomocą kodu JSON. Bardziej zaawansowany przykład kodu JSON znajduje się w sekcji Specyfikacje widgetu wykresu Vega .

Dostępne są następujące widgety:

  • Widget Notes

    Dodawanie prostych uwag tekstowych do widoku Wizualizacja.

  • Widget tabeli

    Prezentuj dane wejściowe i rozwiązanie w tabelach, korzystając z funkcji wyszukiwania i filtrowania. Patrz sekcja Wyszukiwanie tabel i filtrowanie.

  • widgety Wykresy

    Prezentuj dane wejściowe i rozwiązanie na wykresach.

  • Widget wykresu Gantta

    Wyświetl rozwiązanie problemu z harmonogramowaniem (lub innego typu odpowiedniego problemu) na wykresie Gantta.

    Ten widget jest używany automatycznie do planowania problemów, które są modelowane za pomocą programu Asystent modelowania. Istnieje możliwość edytowania tego wykresu Gantta lub tworzenia i konfigurowania nowych wykresów Gantta dla każdego problemu nawet dla tych modeli, które nie używają Asystenta modelowania.

Edytor wizualizacji

Istnieje możliwość edytowania widgetów w Edytorze wizualizacji przez kliknięcie ikony Konfiguruj widget (ołówek) w widgecie. Następnie można go dostosować w edytorze lub edytując kod JSON.

W edytorze można łatwo zmienić nazwę widgetu i wybrać źródło danych, które mają być wyświetlane w widoku Wizualizacja.

Po zmodyfikowaniu widgetu w Edytorze wizualizacjiwyświetlany jest również podgląd, w którym wyświetlane są zmiany. Następnie można zapisać zmiany, klikając przycisk OK, co spowoduje zamknięcie okna Edytor wizualizacji. Można też kliknąć przycisk Anuluj, aby porzucić zmiany.

Edytor JSON udostępnia bardziej zaawansowane możliwości edycji. Więcej informacji na temat składni widgetu JSON zawiera następująca sekcja: Składnia widgetów wizualizacyjnych.

Użytkownik może pobrać widok wizualizacji jako plik JSON zawierający definicje i dane, co ułatwia współużytkowanie spostrzeżeń ze współpracownikami.

Strony Wizualizacja

Można tworzyć różne strony dla różnych scenariuszy lub łączyć scenariusze na tej samej stronie.

Strony można dodawać, klikając dwukrotnie znak plus. Następnie można dostosować to, co jest wyświetlane na każdej stronie.

Aby edytować stronę, kliknij ikonę Edytuj (ołówek). W Edytorze wizualizacji można edytować nazwę strony, zmienić kolejność i dodawać strony. Kliknięcie przycisku OK w oknie Edytor wizualizacji powoduje zapisanie aktualizacji i zamknięcie edytora. Można również wybrać opcję Anuluj, aby porzucić zmiany.

Aby usunąć stronę, kliknij kartę strony, a na karcie pojawi się przycisk usuwania.

Wyszukiwanie i filtrowanie tabel

Użytkownik może filtrować tabele (zarówno w programie Przygotuj dane widok , jak i w Widok wizualizacji), klikając ikonę wyszukiwania i wprowadzając wartość do wyszukania. Można również określić nazwę kolumny, dwukropek i wartość. Jeśli na przykład w polu wyszukiwania tabeli diet_food_nutrients zostanie wprowadzona wartość food:hot , tabela zostanie odfiltrowana tak, aby wyświetlane były tylko te wiersze, które zawierają słowo "gorący". W tym przykładzie uzyskuje się tylko jeden wiersz zawierający Hotdogżywność. Można również wprowadzić przedrostek nazwy kolumny. Na przykład wprowadzenie fo:hot uzyskuje ten sam wynik co food:hot. Nazwa kolumny jest opcjonalna, dlatego w tym przypadku można również wprowadzić wartość hot . Jeśli nazwa kolumny nie zostanie określona, przeszukiwane są wszystkie kolumny, a odpowiadające im wiersze są uzyskiwane. Na przykład, jeśli wprowadzisz 0, w tabeli diet_food_nutrients uzyskasz cztery wiersze, które zawierają tę wartość w jednej z kolumn. Można również filtrować według wartości liczbowych w następujący sposób:

Wprowadź w polu wyszukiwania Wynik: wiersze wyświetlane zawierające wartości kolumn
column_name: 12 równa 12
column_name: 10 .. większe lub równe 10
column_name: .. 10 mniejsze lub równe 10
column_name: 15 .. 25 między 15 a 25

Składnia widgetów Wizualizacja

Składnia widgetu może być przydatna przy dostosowywaniu widgetów poza funkcjonalność udostępnianej przez edytor JSON.

Podstawowa składnia widgetu jest następująca:

{
  "name": "Widget Title",
  "type": "WidgetType",
  "props": {}
}
Tabela 1. Podstawowa składnia widgetu
  Opis

name

Definiuje tytuł widgetu, który jest wyświetlany w nagłówku widgetu.

type

Definiuje typ widgetu.

props

Definiuje właściwości widgetu. Właściwości różnią się w zależności od type widgetu.

Podstawowa składnia widgetów dla widgetów połączonych z danymi, takimi jak tabele i wykresy, jest następująca:

{
  "name": "Table Cars",
  "type": "Table",
  "props": {
    "container": "",
    "data": "cars",
    "spec": {},
    "search": ""
  }
}
Tabela 2. Podstawowa składnia widgetów połączonych z danymi
  Opis

data

Zwykle określa się data. data odnosi się do tabeli, z której mają zostać wyodrębane dane.

spec

Zwykle pozostajesz pusty spec . Opcja Wizualizacja powoduje wygenerowanie domyślnego spec jako punktu początkowego.

container

Opcjonalnie podaj container. If container equals "" or "$current-scenario", it references the current scenario. Ten ostatni jest przydatny, gdy istnieje wiele scenariuszy.

Produkt container może odwoływać się do innego scenariusza w tej samej Decision Optimization eksperyment według nazwy: "container":"Scenario 1". Może on również odwoływać się do listy różnych scenariuszy: "container":["Scenario April","Scenario June"].

Aby zagregować wszystkie scenariusze zawarte w Decision Optimization eksperyment, należy użyć "container":"*". Produkt container obsługuje również następującą składnię: "container":"/regex/" , gdzie będą przywoływane wszystkie scenariusze z nazwami, które zawierają regex . Dodaj element i po ukośniku, aby zignorować różnice wielkości liter, na przykład "container":"/april/i" będzie odwoływać się do wszystkich scenariuszy z nazwami, które zawierają april lub April.

Wiersze wymienionych scenariuszy są konkatenowane w jednej tabeli, z dodatkową kolumną $scenario zawierającą nazwę scenariusza.

search

Zapisuje treść pola tekstowego wyszukiwania.

Specyfikacje widgetu Notes

Widget programu Notes można stylizować jako notatkę po nim, jak to pokazano w następującym przykładzie kodu:

{
  "name": "Notes",
  "type": "Notes",
  "props": {
    "notes": "My post-it note",
    "style": {
      "background": "#ffe"
    },
    "headerStyle": {
      "background": "#ffe"
    }
  }
}

Ten przykład stylu ma zastosowanie do innych widgetów.

Specyfikacje widgetu tabeli

Specyfikacje widgetu tabeli składają się z listy kolumn, które są zgodne z następującą składnią:

{
  "name": "Table Cars",
  "type": "Table",
  "property": "Acceleration",
  "label": "Acceleration",
  "type": "Number",
  "visible": true,
  "width": 100,
  "style": {}
}
Tabela 3. Specyfikacja widgetu tabeli
  Opis

property

Właściwość klucza do uzyskania dostępu do danych w określonym wierszu.

type

Wymagane, aby funkcja wyszukiwania i filtrowania była poprawna, ponieważ liczby nie są wyszukiwane w postaci łańcuchów.

visible

Umożliwia wyświetlanie lub ukrywanie dowolnej kolumny bez całkowitego usunięcia jej definicji.

label

Definiuje nagłówki kolumn.

style

Umożliwia określanie stylu tabel przez dodanie właściwości CSS w przypadku wielbłąda. Na przykład, aby określić wyrównanie tekstu w tabeli, należy użyć opcji textAlign zamiast text-align.

Renderowanie tabel można dostosować, korzystając z następujących elementów:

Tabela 4. Dostosowywanie widgetu tabeli
  Opis

numbered

Wyświetla numery wierszy.

compact

Zmniejsza wysokość wiersza.

columnExpand

Ustaw columnExpand na true , aby rozwinąć szerokość kolumn, aby zmieścić się w widgecie.

columnShrink

Ustaw columnShrink na true , aby zmniejszyć szerokość kolumn, aby zmieścić się w widgecie.

Funkcja wyszukiwania i filtrowania jest dostępna w tabelach. Aby przeszukać treść w tabeli, kliknij ikonę wyszukiwania ikona wyszukiwania. Aby ograniczyć wyszukiwanie do konkretnej kolumny, należy dodać przedrostek do wyszukiwania w następujący sposób: "column heading":"search", na przykład name:chevrolet. Aby wyszukać wartości z zakresu od x do x, należy użyć wartości 10..20. Możliwe jest również wyszukiwanie wartości większych niż x, na przykład 10.., a także wartości mniejszych niż x, na przykład ..20. Więcej informacji na temat filtrowania tabel zawiera sekcja Wyszukiwanie tabel i filtrowanie.

Widgety wykresów

Istnieje możliwość użycia dwóch typów widgetów wykresów: Wykresy Vega i Wykresy. Różne typy wykresów są dostępne po otwarciu tych edytorów widgetów wykresów.

Specyfikacja widgetu Wykres Vega

Widget Wykres Vega korzysta ze specyfikacji Vega-Lite w celu tworzenia różnych typów wykresów (wykresy słupkowe, punktowe itd.). Jeśli pole spec pozostanie puste, prosty wykres słupkowy zostanie automatycznie wygenerowany z pierwszą kolumną łańcuchową w osi x i pierwszą liczbą w osi Y.

Vega-Lite umożliwia filtrowanie danych i transformację danych. Na przykład łańcuchy mogą być przekształcane w daty.

Aby uzyskać więcej informacji na temat Vega-Lite, patrz Vega-Lite-A High-Level Visualization Grammar.

Poniżej przedstawiono zaawansowany przykład zgrupowanego wykresu słupkowego w oparciu o tabelę danych populacji. W tym przykładzie pokazano, jak filtrować dane i jak obliczyć kolumnę wirtualną:

{
  "name": "Population Grouped Bar Chart",
  "type": "Chart",
  "props": {
    "data": "population",
    "spec": {
      "transform": [
        {
          "filter": "datum.year == 2000"
        },
        {
          "calculate": "datum.sex == 2 ? 'Female' : 'Male'",
          "as": "gender"
        }
      ],
      "mark": "bar",
      "encoding": {
        "column": {
          "field": "age",
          "type": "ordinal"
        },
        "y": {
          "aggregate": "sum",
          "field": "people",
          "type": "quantitative",
          "axis": {
            "title": "population",
            "grid": false
          }
        },
        "x": {
          "field": "gender",
          "type": "nominal",
          "scale": {
            "rangeStep": 12
          },
          "axis": {
            "title": ""
          }
        },
        "color": {
          "field": "gender",
          "type": "nominal",
          "scale": {
            "range": [
              "#EA98D2",
              "#659CCA"
            ]
          }
        }
      },
      "config": {
        "facet": {
          "cell": {
            "strokeWidth": 0
          }
        },
        "axis": {
          "domainWidth": 1
        }
      }
      }
    }
  }

Wykres Gantta, widget

Wykresy Gantta są tworzone automatycznie w celu wyświetlenia rozwiązania problemów z planowaniem utworzonych za pomocą programu Asystent modelowania. Można jednak edytować, tworzyć i konfigurować wykresy Gantta dla dowolnych danych, w których ma znaczenie, przy użyciu widgetu Gantta. Użyj edytora JSON do tego celu, klikając ikonę ołówka i wybierając panel JSON.

Wykres Gantta generowany automatycznie dla asysty modelowania korzysta z następującego kodu JSON. The data field value $cognitive-gantt here dynamically enables the Gantt widget to connect to the Asystent modelowania solution. Ten dynamiczny ładowanie może również sugerować, że może to zająć chwilę dla wykresu Gantta, który ma zostać wyświetlony.
{
  "name": "",
  "type": "Gantt",
  "props": {
    "container": "",
    "data": "$cognitive-gantt",
    "spec": {},
    "search": ""
  }
}
Aby zdefiniować własny wykres Gantta, należy zmodyfikować kod JSON i podać nazwy 3 tabel w celu zdefiniowania danych resources, activities i reservations w następujący sposób:
  "data": [
    "resourcesTableName",
    "activitiesTableName",
    "reservationsTableName"
  ],
W celu zdefiniowania tych tabel należy również podać sekcję spec . Pola parent są opcjonalne, ale wszystkie pozostałe pola są obowiązkowe.
  "resources": {
    "data": "resourcesTableName",
    "id": "id",
    "parent": "parent",
    "name": "name"
  },
  "activities": {
    "data": "activitiesTableName",
    "id": "id",
    "name": "name",
    "start": "start",
    "end": "end",
    "parent": "parent"
  },
  "reservations": {
    "data": "reservationsTableName",
    "activity": "activity",
    "resource": "resource"
  },

Innym polem obowiązkowym, które należy również zdefiniować w specyfikacji jest dateFormat , tak aby wszystkie wspólne formaty daty mogły zostać przekształcone w rzeczywiste daty. Niektóre typowe formaty daty to np. 'yyyy-MM-dd', 'yyyy-MM-dd HH:mm:ss' itd. Można również użyć S w milisekundach na czas Epocha, na przykład "dateFormat": "S". dateFormat musi być zgodny z polami "start" i "end" w tabeli "activity" .

Komunikat o błędzie Nie zdefiniowano okna czasowego jest wyświetlany do czasu zdefiniowania tabeli activity z polami start i end , które korzystają z podanego dateFormat.

Dostępne są również opcjonalne pola:
  • resourceQuantity , gdzie można skonfigurować kolumnę ilości w tabeli zasobów w celu włączenia wykresu Gantta w celu uzyskania niezbędnych informacji w celu zapełnienia wykresu obciążenia dla danego użytkownika. Tę kolumnę można ustawić w następujący sposób: "resourceQuantity": "quantity"

  • Można również ustawić typ wykresu Gantta, który jest potrzebny: ActivityChart lub ScheduleChart. Typ można ustawić w następujący sposób:"type": "ActivityChart",. Można również pominąć to ustawienie, a wartością domyślną jest ScheduleChart. Jeśli zostanie wybrana opcja ActivityChart, należy podać więcej informacji dotyczących nazwy tabeli ograniczeń i odwzorowania dla tej tabeli:
      "constraints": {
        "data": "constraintsTableName",
        "from": "from",
        "to": "to",
        "type": "type"
      },
    Wartości from i to to nazwy kolumn w tabeli ograniczeń, które definiują kolejność wykonywania zadań. Wartości typu w tym miejscu odpowiadają wartościom biblioteki wykresu Gantta 0 do 3:
    START_TO_START: 0,
    START_TO_END: 2,
    END_TO_END: 3,
    END_TO_START: 1,
    Jeśli na przykład zadanie to jest uruchamiane po zakończeniu zadania from , należy wybrać wartość 1 jako wartość typu.
ScheduleChart przykład
{
  "name": "",
  "type": "Gantt",
  "props": {
    "container": "",
    "data": [
      "resources",
      "activities",
      "reservations"
    ],
    "spec": {
      "resources": {
        "data": "resources",
        "id": "id",
        "parent": "parent",
        "name": "name"
      },
      "activities": {
        "data": "activities",
        "id": "id",
        "name": "name",
        "start": "start",
        "end": "end",
        "parent": "parent"
      },
      "reservations": {
        "data": "reservations",
        "activity": "activity",
        "resource": "resource"
      },
      "dateFormat": "S",
      "resourceQuantity": "quantity"
    },
    "search": ""
  }
}
ActivityChart przykład
{
  "name": "",
  "type": "Gantt",
  "props": {
    "container": "",
    "data": [
      "resources",
      "activities",
      "reservations",
      "constraints"
    ],
    "spec": {
      "type": "ActivityChart",
      "resources": {
        "data": "resources",
        "id": "id",
        "parent": "parent",
        "name": "name"
      },
      "activities": {
        "data": "activities",
        "id": "id",
        "name": "name",
        "start": "start",
        "end": "end",
        "parent": "parent"
      },
      "constraints": {
        "data": "constraints",
        "from": "from",
        "to": "to",
        "type": "type"
      },
      "reservations": {
        "data": "reservations",
        "activity": "activity",
        "resource": "resource"
      },
      "dateFormat": "S",
      "resourceQuantity": "quantity"
    },
    "search": ""
  }
}

Komunikat o błędzie Nie zdefiniowano okna czasowego jest wyświetlany do czasu zdefiniowania tabeli activity z polami start i end , które korzystają z podanego dateFormat.

Więcej inform.

Informacje o innych typach wykresów można znaleźć w sekcji Wizualizacja danych.

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more