{"id":876,"date":"2020-09-25T08:25:00","date_gmt":"2020-09-25T06:25:00","guid":{"rendered":"https:\/\/benedict-witzenberger.de\/wordpress\/?p=876"},"modified":"2020-09-29T15:33:26","modified_gmt":"2020-09-29T13:33:26","slug":"4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper","status":"publish","type":"post","link":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/","title":{"rendered":"4 Tipps f\u00fcr automatisierte Grafiken mit DatawRappr"},"content":{"rendered":"\n<p>Das Coronavirus hat im digitalen Journalismus viel angeschoben. Zum Beispiel beim Thema automatisierte Grafiken. Ein paar Tipps, wie ich mit Skripten und Datawrapper Grafiken update.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Dieser Blogpost ist schamlose Werbung f\u00fcr mein <a href=\"https:\/\/benedict-witzenberger.de\/wordpress\/2019\/12\/02\/introducing-datawrappr\/\" target=\"_blank\" rel=\"noreferrer noopener\">R-Package DatawRappr<\/a>. Das hatte ich zuf\u00e4llig Ende 2019 entwickelt, haupts\u00e4chlich um die API von Datawrapper aus R heraus nutzen zu k\u00f6nnen. <\/p>\n\n\n\n<p>Inzwischen nutzen es viele DatenjournalistInnen, um ihre Grafiken f\u00fcr das Coronavirus zu updaten. Seit Beginn der Pandemie habe ich einige L\u00f6sungen damit entwickelt, um &#8222;fancy&#8220; Sachen zu machen &#8211; ein paar davon wollte ich hier teilen. Ein bisschen nerdiger Post diesmal.<\/p>\n\n\n\n<h2>1. Viele Grafiken auf einmal erstellen<\/h2>\n\n\n\n<p>Ein klassischer Anwendungsfall: Wir haben eine Grafik und h\u00e4tten die gerne f\u00fcr verschiedene Auspr\u00e4gungen ausgegeben. Zum Beispiel: Ein Liniendiagramm der Neuinfektionen f\u00fcr alle L\u00e4nder in der EU. Wie kann ich diese Grafiken &#8211; die alle gleich aussehen &#8211; am einfachsten hintereinander weg erstellen?<\/p>\n\n\n\n<p>Das geht ganz einfach \u00fcber einen For-Loop (<em>R-Enthusiasten werden an dieser Stelle darauf hinweisen, dass man daf\u00fcr doch auf jeden Fall die <code>apply<\/code>-Familie oder das Package <code>purrr<\/code> verwenden sollte. Macht auch Sinn, aber vermutlich ist es f\u00fcr Leute aus anderen Programmiersprachen einfacher, wenn wir erstmal bei <code>for<\/code> bleiben.<\/em>)<\/p>\n\n\n\n<p>Wie gehen wir vor?<\/p>\n\n\n\n<ol class=\"styled_ol_list\"><li>Wir erstellen f\u00fcr ein Land die Grafik in Datawrapper so, wie sie aussehen soll.<\/li><li>Lade die Metadaten dieser Grafik in R: <code>metadata_chart &lt;- dw_retrieve_chart_metadata(chart_id, api_key)<\/code><\/li><li>Wir speichern den <code>visualize<\/code>-Abschnitt der Metadaten lokal ab. Zum Beispiel als <code>visualize.RData<\/code>:<br><code>visualize &lt;- metadata_chart[[\"content\"]][[\"metadata\"]][[\"visualize\"]]<\/code><br><code>saveRDS(visualize, \"visualize.RData\")<\/code><\/li><li><code>Visualize<\/code> enth\u00e4lt alle optischen Vorgaben unserer Grafik. Wir k\u00f6nnen die der API mitgeben, wenn wir eine neue Grafik erstellen. <br>Jetzt geht also der Loop los &#8211; \u00fcber einen Vektor mit den L\u00e4ndern. Grunds\u00e4tzlich sieht der irgendwie so aus: <br><code>for (Land in Laender_liste) {<br>rohdaten %&gt;%<br>filter(Staat_in_Rohdaten == Land)<br>}<\/code><\/li><li>F\u00fcr jedes dieser L\u00e4nder erstellen wir eine neue Datawrapper-Grafik mit <code>dw_create_chart()<\/code>.  Die neue Chart-ID bekommen wir direkt von der API zur\u00fcckgeliefert und k\u00f6nnen sie im weiteren Verlauf benutzen:<br><code>current_chart &lt;- dw_create_chart(title = paste0(\"Chart f\u00fcr \", Land),type = \"d3-lines\")<\/code><\/li><li>Damit auch die Visualisierungen richtig angezeigt werden, schicken wir der neuen Grafik direkt noch ein <code>dw_edit_chart()<\/code> hinterher:<br><code>dw_edit_chart(chart_id = current_chart, visualize = visualize)<\/code><br>[Eventuell kann man an dieser Stelle auch schon Daten mit <code>dw_data_to_chart()<\/code> hochladen.]<\/li><li>Praktisch w\u00e4re es jetzt noch, wenn wir einen \u00dcberblick bek\u00e4men \u00fcber alle Iframes und URLs unserer neu erstellten Grafiken. Daf\u00fcr nutzen wir die <code>dw_publish-chart<\/code>-Funktion. Die kann ein Objekt zur\u00fcckgeben, das die gew\u00fcnschten Infos enth\u00e4lt und die wir abspeichern.<br>Vor unseren Loop erstellen wir daf\u00fcr eine leere Liste&#8230; <br><code>result_list &lt;- list()<br><\/code>&#8230; die wir in jedem Loop-Durchgang (also f\u00fcr jedes Land) weiter bef\u00fcllen:<br><code>published_chart &lt;- dw_publish_chart(current_chart)<br><br>result_list[[i]] &lt;- data.frame(id = area_id, country = area_name, url = published_chart$publicUrl, iframe = published_chart$iframeCode, chart_id = published_chart[[\"content\"]][[\"data\"]][[1]][[\"id\"]])<\/code><\/li><li>Die Grafiken sind erstellt. Damit wir beim Aktualisieren auch alle Chart-IDs beisammen haben, speichern wir <code>result_list<\/code> am besten irgendwo lokal als Dataframe ab:<br><code>result_df &lt;- dplyr::bind_rows(result_list)<br>saveRDS(result_df, \"chart_ids.RData\")<\/code><\/li><li>F\u00fcr die Aktualisierung loopen wir dann einfach \u00fcber <code>result_list<\/code> und ver\u00e4ndern die Charts: die Daten mit <code>dw_data_to_chart<\/code>, die Titel, Introtexte oder Anmerkungen mit <code>dw_edit_chart<\/code>.<\/li><\/ol>\n\n\n\n<p>Den gesamten Code f\u00fcr so einen Loop habe ich hier <a href=\"https:\/\/gist.github.com\/munichrocker\/2ee3d4b6a98a975c95a53f9fa79b7685\" target=\"_blank\" rel=\"noreferrer noopener\">in einem Github Gist <\/a>verlinkt.<\/p>\n\n\n\n<h2>2. Datawrapper-Grafiken als Bilder ausgeben<\/h2>\n\n\n\n<p>In einem weiteren Schritt k\u00f6nnen wir aus den vielen Grafiken auch Bilder erstellen. Zum Beispiel f\u00fcr einen Small-Multiple-\u00dcberblick sein. Also viele kleine Grafiken nebeneinander. <\/p>\n\n\n\n<p>Wir k\u00f6nnen daf\u00fcr wieder den vorherigen Loop verwenden. Dazu die Funktion <code>dw_export_chart<\/code>():<br><code>png_chart &lt;- dw_export_chart(<br>chart_id = current_chart, <br>type = \"png\",<br>unit = \"px\",<br>mode = \"rgb\",<br>width = 200,<br>height = 300,<br>plain = TRUE,<br>scale = 2)<\/code><\/p>\n\n\n\n<p>In diesem Beispiel geben wir ein PNG mit 200 Pixeln Breite und 300 Pixeln H\u00f6he aus, doppelt skaliert (<code>scale<\/code>), Titel und Anmerkungen werden nicht angezeigt (wegen: <code>plain = TRUE<\/code>). Mit der Funktion image_write aus dem <a href=\"https:\/\/cran.r-project.org\/web\/packages\/magick\/vignettes\/intro.html\" target=\"_blank\" rel=\"noreferrer noopener\"><code>magick<\/code>-Package<\/a> k\u00f6nnen wir die Grafiken dann lokal speichern:<\/p>\n\n\n\n<p><code>image_write(png_chart, \"output.png\")<\/code><\/p>\n\n\n\n<p>Dann laden wir die Bilder irgendwo hoch, und bauen mit HTML eine \u00dcberblicksseite, in die wir alle einbinden.<\/p>\n\n\n\n<h2>3. Tooltips \u00fcber die Datawrapper-API ver\u00e4ndern<\/h2>\n\n\n\n<p>Karten und Scatterplots in Datawrapper k\u00f6nnen beim Hovern oder Klicken Tooltips anzeigen. Auch die kann man ziemlich einfach \u00fcber die API ver\u00e4ndern. Das kann zum Beispiel praktisch sein, wenn man bestimmte Daten dynamisch dazugibt oder eben nicht. <\/p>\n\n\n\n<p>Ein Beispiel: Ich scrape f\u00fcr eine Zusatzinfo eine bestimmte Seite. Diese Info will ich eigentlich immer in meiner Grafik anzeigen, aber was, wenn die Seite pl\u00f6tzlich offline ist? Ich k\u00f6nnte auf ein Fallback zur\u00fcckspringen, ich kann mich aber auch entscheiden, diese Info dann nicht anzuzeigen. Daf\u00fcr muss ich die Tooltips ver\u00e4ndern k\u00f6nnen.<\/p>\n\n\n\n<p>Am einfachsten ist das Vorgehen, wenn ich die Tooltips \u00fcber das grafische Nutzerinterface anlege. Ich kann sie dann \u00fcber <code>dw_retrieve_chart_metadata()<\/code> ganz einfach abrufen und ver\u00e4ndern. Der Tooltip liegt unter: <code>metadata_chart[[\"content\"]][[\"metadata\"]][[\"visualize\"]]<\/code> und besteht aus drei Abschnitten:<\/p>\n\n\n\n<ul><li><code>body<\/code>: ist der Haupttext des Tooltipps. Der Inhalt kann mit HTML und CSS strukturiert werden (wie auch im GUI). Um Variablen aus den Daten zu verwenden nutzt man dieses Format:&nbsp;<code>{{ variable_name }}<\/code>.<\/li><li><code>title<\/code>: ist &#8211; wie der Name vermuten l\u00e4sst &#8211; die \u00dcberschrift des Tooltips. Auch hier kann man Variablen verwenden, wie im body.<\/li><li><code>fields<\/code>: ist eine Liste, die die Zuordnung von Variablen im Tooltip und Variablen in den Daten festlegt. Zum Beispiel so:<br><code>fields = list(<\/code><br><code>\"variableTooltip1\" = \"VariableData1\",<\/code><br><code>\"variableTooltip2\" = \"VariableData2\"<\/code><br><code>)<\/code><br>Im einfachsten Fall hei\u00dfen die beiden Variablen einfach auf beiden Seiten gleich.<\/li><\/ul>\n\n\n\n<p>Um den Tooltip zu ver\u00e4ndern nutzen wir <code>dw_edit_chart()<\/code>:<\/p>\n\n\n\n<p><code>dw_edit_chart(chart_id, visualize = list(<br>tooltip = list(<br>body = \"{{ variableTooltip1 }} has value {{ variableTooltip2 }}.\",<br>title = \"{{ variableTooltip1 }}\",<\/code><br><code>fields = list(<br>\"variableTooltip1\" = \"VariableData1\",<br>\"variableTooltip2\" = \"VariableData2\"<br>)<br>)))<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"926\" height=\"676\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.31.png\" alt=\"Screenshot einer Datawrapper-Grafik mit einem Tooltip \u00fcber einer Deutschland-Karte\" class=\"wp-image-903\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.31.png 926w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.31-300x219.png 300w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.31-768x561.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<h2>4. Kartenlegende handy-freundlich<\/h2>\n\n\n\n<p>Datawrapper hat inzwischen richtig viele M\u00f6glichkeiten, Karten zu erstellen. Gerade bei Choroplethenkarten gibt es aber ein Problem: <s>Auf kleinen Bildschirmen wird die Karte so weit zusammengestaucht, dass die Legend oft Teile der Daten \u00fcberlagert &#8211; und manche Bereich dadurch nur schwer zu lesen sind. Ein Workaround ist es, den Zoom einzuschalten.<\/s> [Edit: <a href=\"https:\/\/blog.datawrapper.de\/choropleth-symbol-maps-easier-faster-better-looking\/\" target=\"_blank\" rel=\"noreferrer noopener\">Am 29.09.20 hat Datawrapper ein gro\u00dfes Update ver\u00f6ffentlicht &#8211; mit neuer Legende<\/a>]<\/p>\n\n\n\n<p>Eine andere Variante: Die Legende in die Unterzeile der Grafik zu verlagern. So geht man daf\u00fcr vor:<\/p>\n\n\n\n<ol class=\"styled_ol_list\"><li>Erstelle eine Choroplethenkarte in Datawrapper: Suche eine Basiskarte aus, und verbinde die Karte mit den Daten (\u00fcber eine gemeinsame Spalte, z.B. die AGS, oder ISO-Codes). \u00dcberpr\u00fcfe dann einmal kurz, ob die Legende auf der Karte richtig angezeigt wird. [<a href=\"https:\/\/munichrocker.github.io\/DatawRappr\/articles\/map.html\" target=\"_blank\" rel=\"noreferrer noopener\">Das geht auch mit DatawRappr<\/a>]<\/li><li>Lade die Metadaten der Karte in einem R-Skript: <code>metadata_chart &lt;- dw_retrieve_chart_metadata(chart_id, api_key)<\/code><\/li><li>In <code>metadata_chart<\/code> finden wir dann alle Infos, die unsere Karte beschreiben. Die Legende finden wir im Abschnitt <code>metadata_chart[[\"content\"]][[\"metadata\"]][[\"visualize\"]][[\"categories\"]]<\/code>. Der Einfachheit halber k\u00f6nnen wir diesen Abschnitt auch einfach schnell als Variable rausziehen:<br><code>new_legend &lt;- metadata_chart[[\"content\"]][[\"metadata\"]][[\"visualize\"]][[\"categories\"]]<\/code><\/li><li>Diesen Abschnitt geben wir in die neue Funktion <code>dw_legend_to_string<\/code>. Sie gibt die Legende dann als HTML-Code zur\u00fcck (alternativ auch als Textstring oder Vektor), die wir einfach als Unterzeile in Datawrapper hinterlegen k\u00f6nnen:<br><code>intro_text &lt;- dw_legend_to_string(new_legend, return_val = \"html\")<\/code><\/li><li>Wir updaten die Grafik mit: <br><code>dw_edit_chart(chart_id, api_key, intro = intro_text)<\/code><\/li><\/ol>\n\n\n\n<p>So sieht das Ergebnis aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.18-1024x154.png\" alt=\"Screenshot einer Datawrapper-Karte mit einer Legend, die handyfreundlich ist.\" class=\"wp-image-904\" width=\"776\" height=\"117\" srcset=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.18-1024x154.png 1024w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.18-300x45.png 300w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.18-768x116.png 768w, https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Bildschirmfoto-2020-09-17-um-18.39.18.png 1034w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Das Coronavirus hat im digitalen Journalismus viel angeschoben. Zum Beispiel beim Thema automatisierte Grafiken. Ein paar Tipps, wie ich mit Skripten und Datawrapper Grafiken update. Dieser Blogpost ist schamlose Werbung f\u00fcr mein R-Package DatawRappr. Das hatte ich zuf\u00e4llig Ende 2019 <a href=\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\"><\/p>\n<div class=\"read-more\">\n<p>Read more &#8250;<\/p>\n<\/div>\n<p><!-- end of .read-more --><\/a><\/p>\n","protected":false},"author":1,"featured_media":908,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,8],"tags":[46,65,45,41],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr<\/title>\n<meta name=\"description\" content=\"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr\" \/>\n<meta property=\"og:description\" content=\"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\" \/>\n<meta property=\"og:site_name\" content=\"Benedict Witzenberger\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-25T06:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-29T13:33:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Teaserbild-DatawRappr-Tipps.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1462\" \/>\n\t<meta property=\"og:image:height\" content=\"1152\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Benedict Witzenberger\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@munichrocker\" \/>\n<meta name=\"twitter:site\" content=\"@munichrocker\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benedict Witzenberger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#website\",\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/\",\"name\":\"Benedict Witzenberger\",\"description\":\"#ddj-Blog and personal portfolio page\",\"publisher\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/benedict-witzenberger.de\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\",\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\",\"name\":\"Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr\",\"isPartOf\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#website\"},\"datePublished\":\"2020-09-25T06:25:00+00:00\",\"dateModified\":\"2020-09-29T13:33:26+00:00\",\"description\":\"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.\",\"breadcrumb\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/benedict-witzenberger.de\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"4 Tipps f\u00fcr automatisierte Grafiken mit DatawRappr\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\"},\"author\":{\"name\":\"Benedict Witzenberger\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"headline\":\"4 Tipps f\u00fcr automatisierte Grafiken mit DatawRappr\",\"datePublished\":\"2020-09-25T06:25:00+00:00\",\"dateModified\":\"2020-09-29T13:33:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/\"},\"wordCount\":1015,\"publisher\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\"},\"keywords\":[\"Datawrapper\",\"DatawRappr\",\"R Datawrapper\",\"Visualisierung\"],\"articleSection\":[\"Tools\",\"Werkstatt\"],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae\",\"name\":\"Benedict Witzenberger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g\",\"caption\":\"Benedict Witzenberger\"},\"logo\":{\"@id\":\"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/benedict-witzenberger.de\/wordpress\/author\/benedict\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr","description":"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/","og_locale":"de_DE","og_type":"article","og_title":"Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr","og_description":"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.","og_url":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/","og_site_name":"Benedict Witzenberger","article_published_time":"2020-09-25T06:25:00+00:00","article_modified_time":"2020-09-29T13:33:26+00:00","og_image":[{"width":1462,"height":1152,"url":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-content\/uploads\/2020\/09\/Teaserbild-DatawRappr-Tipps.png","type":"image\/png"}],"author":"Benedict Witzenberger","twitter_card":"summary","twitter_creator":"@munichrocker","twitter_site":"@munichrocker","twitter_misc":{"Verfasst von":"Benedict Witzenberger","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#website","url":"https:\/\/benedict-witzenberger.de\/wordpress\/","name":"Benedict Witzenberger","description":"#ddj-Blog and personal portfolio page","publisher":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/benedict-witzenberger.de\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/","url":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/","name":"Datawrapper-API: Vier Tipps f\u00fcr automatisierte Grafiken mit DatawRappr","isPartOf":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#website"},"datePublished":"2020-09-25T06:25:00+00:00","dateModified":"2020-09-29T13:33:26+00:00","description":"Vier Tipps, wie ich mit Skripten und Datawrapper Grafiken update.","breadcrumb":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/benedict-witzenberger.de\/wordpress\/"},{"@type":"ListItem","position":2,"name":"4 Tipps f\u00fcr automatisierte Grafiken mit DatawRappr"}]},{"@type":"Article","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/#article","isPartOf":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/"},"author":{"name":"Benedict Witzenberger","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"headline":"4 Tipps f\u00fcr automatisierte Grafiken mit DatawRappr","datePublished":"2020-09-25T06:25:00+00:00","dateModified":"2020-09-29T13:33:26+00:00","mainEntityOfPage":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/2020\/09\/25\/4-tipps-fuer-automatisierte-grafiken-mit-datawrappr-datawrapper\/"},"wordCount":1015,"publisher":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae"},"keywords":["Datawrapper","DatawRappr","R Datawrapper","Visualisierung"],"articleSection":["Tools","Werkstatt"],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/ec6b0c6e16ce10af4a73b4dafefeceae","name":"Benedict Witzenberger","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0a634cefbade1a34310db77ccc3fe5d?s=96&d=mm&r=g","caption":"Benedict Witzenberger"},"logo":{"@id":"https:\/\/benedict-witzenberger.de\/wordpress\/#\/schema\/person\/image\/"},"url":"https:\/\/benedict-witzenberger.de\/wordpress\/author\/benedict\/"}]}},"_links":{"self":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/876"}],"collection":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/comments?post=876"}],"version-history":[{"count":10,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/876\/revisions"}],"predecessor-version":[{"id":933,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/posts\/876\/revisions\/933"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/media\/908"}],"wp:attachment":[{"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/media?parent=876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/categories?post=876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benedict-witzenberger.de\/wordpress\/wp-json\/wp\/v2\/tags?post=876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}