HOW TO

Create a pop-up pie chart legend displaying the top values for ArcGIS Pro

Last Published: May 29, 2025

Beschreibung

In ArcGIS Pro können Arcade-Ausdrücke verwendet werden, um die höchsten Feldwerte in der Legende eines Pop-up-Kreisdiagramms anzuzeigen. Dieser Artikel enthält ein Beispiel und Anweisungen dazu, wie Sie mit Arcade-Ausdrücken eine Legende für ein Pop-up-Kreisdiagramm erstellen und darin die drei am häufigsten gesprochenen Sprachen in Caledon, Ontario (Kanada) anzeigen.

Lösung oder Problemumgehung

  1. Starten Sie ArcGIS Pro, und öffnen Sie das Projekt.
  2. Klicken Sie im Bereich Inhalt mit der rechten Maustaste auf die Feature-Class, und klicken Sie dann auf Pop-ups konfigurieren, um den Bereich "Pop-ups konfigurieren" der Feature-Class zu öffnen.
Öffnen des Werkzeugs "Pop-ups konfigurieren" der Feature-Class im Bereich "Inhalt"
  1. Klicken Sie im Bereich Pop-ups konfigurieren auf Ausdrücke, um ein Feld mit einem Arcade-Ausdruck hinzuzufügen, das im Pop-up verwendet werden soll.
  2. Klicken Sie im Bereich Ausdrücke auf Neu.
  3. Konfigurieren Sie im Dialogfeld Ausdruck-Generator die folgenden Parameter für den Arcade-Ausdruck.
    1. Geben Sie für Name einen neuen Namen für den neuen Ausdruck ein.
    2. Geben Sie unter Titel den Titel für den neuen Ausdruck ein.
  4. Fügen Sie im Abschnitt Ausdruck den folgenden Arcade-Ausdruck ein.
    1. Geben Sie Folgendes an, um den Array-Parameter, in dem die konkurrierenden Zahlenfeldwerte und der Text der Feldalias-Eigenschaft gespeichert sind, zu definieren:
var <variableName1> = [
      {value: $feature.<fieldName1>, alias: " <fieldAlias1>"},
      {value: $feature.<fieldName2>, alias: " <fieldAlias2>"},
      ...
      {value: $feature.<fieldName214>, alias: " <fieldAlias214>"}
];
  1. Geben Sie die folgende Anweisung an, um das Array nach Array-Werten neu zu indizieren.
function getValuesArray(a){
  var valuesArray = []
  for(var i in a){
    valuesArray[i] = a[i].value;
  }
  return valuesArray;
}
  1. Geben Sie die folgende Anweisung an, um die Feldaliasnamen, die sich auf das Feld-Array beziehen, zu suchen und zu kompilieren.
function findAliases(topA,fullA){
  var aliases = [];
  var found = "";
  for(var i in topA){
    for(var k in fullA){
      if(topA[i] == fullA[k].value && topA[i] > 0 && Find(fullA[k].alias, found) == -1){
        found += fullA[k].alias;
        aliases[Count(aliases)] = {
          alias: fullA[k].alias,
          value: topA[i]
        };
      }
    }
  }
  return aliases;
}
  1. Geben Sie die folgende Anweisung an, um das Array vom höchsten zum niedrigsten Feldwert zu sortieren und die Feldaliasnamen und Feldwerte zurückzugeben.
    • Geben Sie für <numberOfTopValuesToDisplay> an, wie viele Höchstwerte angezeigt werden sollen. In diesem Beispiel sind es 3.
    • Geben Sie für <textToDisplayWhenThereIsNoValue> den Text ein, der angezeigt werden soll, wenn kein Feldwert vorhanden ist. In diesem Beispiel lautet der anzuzeigende Text "Nobody lives here".
function getTopGroups(groupsArray){
    
  var values = getValuesArray(groupsArray);
  var topValues = IIF(Max(values) > 0, Top(Reverse(Sort(values)),<numberOfTopValuesToDisplay>), "<textToDisplayWhenThereIsNoValue>");
  var topAliases = findAliases(topValues,groupsArray);
    
  if(TypeOf(topValues) == "String"){
    return topValues;
  } else {
    var content = "";
    for(var i in topAliases){
      content += (i+1) + "." + topAliases[i].alias + " - " + Text(topAliases[i].value, "#,###");
      content += IIF(i < Count(topAliases)-1, "<br/>", "");
    }
  }
    
  return content;
}
 
getTopGroups(<variableName1>);
Note:
The legend numbering does not directly represent the ranking when there are more than two similar reference values. For example, the third most spoken languages in the Caledon area are Italian and Tamil, which are spoken in 45 households each.

Der folgende Codeblock zeigt den voll funktionsfähigen Ausdruck für die drei am häufigsten zu Hause gesprochenen Sprachen in Caledon, Ontario (Kanada).

var groups = [
      {value: $feature.MO_Arabic, alias: " Arabic"},
      {value: $feature.MO_Armenian, alias: " Armenian"},
      {value: $feature.MO_Belarusian, alias: " Belarusian"},
      {value: $feature.MO_Bengali, alias: " Bengali"},
      {value: $feature.MO_Bulgarian, alias: " Bulgarian"},
      {value: $feature.MO_Burmese, alias: " Burmese"},
      {value: $feature.MO_Catalan, alias: " Catalan"},
      {value: $feature.MO_Croatian, alias: " Croatian"},
      {value: $feature.MO_Czech, alias: " Czech"},
      {value: $feature.MO_Danish, alias: " Danish"},
      {value: $feature.MO_Dutch, alias: " Dutch"},
      {value: $feature.MO_English, alias: " English"},
      {value: $feature.MO_Finnish, alias: " Finnish"},
      {value: $feature.MO_French, alias: " French"},
      {value: $feature.MO_German, alias: " German"},
      {value: $feature.MO_Greek, alias: " Greek"},
      {value: $feature.MO_Gujarati, alias: " Gujarati"},
      {value: $feature.MO_Hakka, alias: " Hakka"},
      {value: $feature.MO_Hebrew, alias: " Hebrew"},
      {value: $feature.MO_Hindi, alias: " Hindi"},
      {value: $feature.MO_Hungarian, alias: " Hungarian"},
      {value: $feature.MO_Indonesian, alias: " Indonesian"},
      {value: $feature.MO_Iranian_Persian, alias: " IranianPersian"},
      {value: $feature.MO_Irish, alias: " Irish"},
      {value: $feature.MO_Italian, alias: " Italian"},
      {value: $feature.MO_Japanese, alias: " Japanese"},
      {value: $feature.MO_Korean, alias: " Korean"},
      {value: $feature.MO_Latvian, alias: " Latvian"},
      {value: $feature.MO_Macedonian, alias: " Macedonian"},
      {value: $feature.MO_Malay, alias: " Malay"},
      {value: $feature.MO_Mandarin, alias: " Mandarin"},
      {value: $feature.MO_Mongolian, alias: " Mongolian"},
      {value: $feature.MO_Nepali, alias: " Nepali"},
      {value: $feature.MO_Norwegian, alias: " Norwegian"},
      {value: $feature.MO_Polish, alias: " Polish"},
      {value: $feature.MO_Punjabi_Panjabi, alias: " Punjabi(Panjabi)"},
      {value: $feature.MO_Romanian, alias: " Romanian"},
      {value: $feature.MO_Russian, alias: " Russian"},
      {value: $feature.MO_Serbian, alias: " Serbian"},
      {value: $feature.MO_Sindhi, alias: " Sindhi"},
      {value: $feature.MO_Spanish, alias: " Spanish"},
      {value: $feature.MO_Swahili, alias: " Swahili"},
      {value: $feature.MO_Tamil, alias: " Tamil"},
      {value: $feature.MO_Thai, alias: " Thai"},
      {value: $feature.MO_Tibetan, alias: " Tibetan"},
      {value: $feature.MO_Turkish, alias: " Turkish"},
      {value: $feature.MO_Ukrainian, alias: " Ukrainian"},
      {value: $feature.MO_Uzbek, alias: " Uzbek"},
      {value: $feature.MO_Vietnamese, alias: " Vietnamese"},
      {value: $feature.MO_Welsh, alias: " Welsh"},
      {value: $feature.MO_Wu_Shanghainese, alias: " Wu(Shanghainese)"},
      {value: $feature.MO_Yue_Cantonese, alias: " Yue(Cantonese)"}
];

function getValuesArray(a){
  var valuesArray = []
  for(var i in a){
    valuesArray[i] = a[i].value;
  }
  return valuesArray;
}

function findAliases(topA,fullA){
  var aliases = [];
  var found = "";
  for(var i in topA){
    for(var k in fullA){
      if(topA[i] == fullA[k].value && topA[i] > 0 && Find(fullA[k].alias, found) == -1){
        found += fullA[k].alias;
        aliases[Count(aliases)] = {
          alias: fullA[k].alias,
          value: topA[i]
        };
      }
    }
  }
  return aliases;
}
 
function getTopGroups(groupsArray){
    
  var values = getValuesArray(groupsArray);
  var topValues = IIF(Max(values) > 0, Top(Reverse(Sort(values)),3), "Nobody lives here");
  var topAliases = findAliases(topValues,groupsArray);
    
  if(TypeOf(topValues) == "String"){
    return topValues;
  } else {
    var content = "";
    for(var i in topAliases){
      content += (i+1) + "." + topAliases[i].alias + " - " + Text(topAliases[i].value, "#,###");
      content += IIF(i < Count(topAliases)-1, "<br/>", "");
    }
  }
    
  return content;
}
 
getTopGroups(groups);
  1. Klicken Sie auf Überprüfen, um einen Test des Ausdrucks auszuführen. Wenn der Ausdruck gültig ist, dann klicken Sie auf OK.
Das Expression Builder-Dialogfeld mit dem Beispiel eines Arcade-Ausdrucks
  1. Klicken Sie im Bereich Ausdrücke auf Zurück Das Zurück-Symbol.
Der Bereich "Ausdrücke"
  1. Klicken Sie auf Text, um das Text-Pop-up-Element hinzuzufügen, und dann auf Pop-up-Element bearbeiten Bearbeiten des Pop-up-Elements für das Element Text.
Der Bereich "Pop-ups konfigurieren"
  1. Geben Sie im Bereich Textoptionen einen Titel für die Legende und den neu erstellten Ausdruck an. In diesem Beispiel lautet der neu erstellte Ausdruck {expression/expression3}. Klicken Sie auf Zurück Das Zurück-Symbol, um die Konfiguration des Text-Pop-up-Elements zu übernehmen.
Der Bereich "Textoptionen"

Die folgende Abbildung zeigt die neu konfigurierte Legende des Pop-up-Kreisdiagramms mit den drei am häufigsten gesprochenen Sprachen in Caledon, Ontario (Kanada).

Die neu konfigurierte Legende des Pop-up-Kreisdiagramms in ArcGIS Pro

Artikel-ID: 000031637

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln