{"id":979,"date":"2011-07-07T11:29:48","date_gmt":"2011-07-07T15:29:48","guid":{"rendered":"http:\/\/lukemiller.org\/?p=979"},"modified":"2011-07-07T11:29:48","modified_gmt":"2011-07-07T15:29:48","slug":"a-simple-ggplot2-scatterplot-revisited","status":"publish","type":"post","link":"https:\/\/lukemiller.org\/index.php\/2011\/07\/a-simple-ggplot2-scatterplot-revisited\/","title":{"rendered":"A simple ggplot2 scatterplot revisited"},"content":{"rendered":"<p><a href=\"http:\/\/blogs.sas.com\/iml\/index.php?\/archives\/164-Improving-Graphs-of-Highly-Correlated-Data.html\" target=\"_blank\">Rick Wicklin<\/a> contacted me with a <a href=\"http:\/\/blogs.sas.com\/iml\/index.php?\/archives\/164-Improving-Graphs-of-Highly-Correlated-Data.html\" target=\"_blank\">helpful suggestion<\/a> for improving the data presentation method outlined in my\u00a0 <a href=\"https:\/\/lukemiller.org\/index.php\/2011\/06\/a-simple-ggplot2-scatterplot\/\" target=\"_blank\">previous post<\/a> on using ggplot2 to visualize some data. In the previous post I had plotted up a highly correlated set of points, showing the correspondence between maximum daily body temperatures of model snails sitting with the foot touching the rock surface, or withdrawn into the shell.<\/p>\n<figure id=\"attachment_964\" aria-describedby=\"caption-attachment-964\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/figure_x.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-964\" title=\"figure_x\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/figure_x-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/figure_x-300x300.png 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/figure_x-150x150.png 150w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/figure_x.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-964\" class=\"wp-caption-text\">The original figure.<\/figcaption><\/figure>\n<p><a href=\"http:\/\/blogs.sas.com\/iml\/index.php?\/archives\/164-Improving-Graphs-of-Highly-Correlated-Data.html\" target=\"_blank\">Rick points out<\/a> that with a bit of data manipulation, you can replot these data to give a better picture of how the body temperatures differ across the range of temperatures encountered in the environment. You can use the average of the two maximum body temperatures on each day (extended + withdrawn) to create a new x-axis variable, and then plot the difference between the two body temperatures on the y-axis to emphasize how they differ across that range of temperatures.<\/p>\n<p>So following Rick&#8217;s suggestion, let&#8217;s calculate those new values (adding 1 whole line to the R script) and plot the new data using a slightly modified version of the ggplot2 code used previously. For reference, the original data are available here: <a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/06\/dailymax_runs139_169.csv\">dailymax_runs139_169.csv<\/a>. The script below can be downloaded <a href=\"http:\/\/www.lukemiller.org\/R\/journal_scripts\/ggplot2_scatterplot_example_v2.R\" target=\"_blank\">here<\/a>.<\/p>\n<div style=\"overflow: auto;\">\n<div class=\"geshifilter\">\n<pre class=\"r geshifilter-R\" style=\"font-family: monospace;\"><a href=\"http:\/\/inside-r.org\/r-doc\/base\/library\"><span style=\"color: #003399; font-weight: bold;\">library<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/packages\/cran\/ggplot2\"><span>ggplot2<\/span><\/a><span style=\"color: #009900;\">)<\/span> <span style=\"color: #666666; font-style: italic;\">#load ggplot2 package<\/span>\r\n\u00a0\r\n<a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a> = <a href=\"http:\/\/inside-r.org\/r-doc\/utils\/read.csv\"><span style=\"color: #003399; font-weight: bold;\">read.csv<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/base\/file.choose\"><span style=\"color: #003399; font-weight: bold;\">file.choose<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #666666; font-style: italic;\">#Load the data into a data frame<\/span>\r\n<a href=\"http:\/\/inside-r.org\/r-doc\/base\/colnames\"><span style=\"color: #003399; font-weight: bold;\">colnames<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a><span style=\"color: #009900;\">)<\/span> = <a href=\"http:\/\/inside-r.org\/r-doc\/base\/c\"><span style=\"color: #003399; font-weight: bold;\">c<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"Foot.in\"<\/span><span style=\"color: #339933;\">,<\/span> <span style=\"color: #0000ff;\">\"Foot.out\"<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #0000ff;\">\"Matlab.Day\"<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #666666; font-style: italic;\">#rename columns<\/span>\r\n\u00a0\r\n<span style=\"color: #666666; font-style: italic;\">#Make a new data frame with two columns. 1st calculate the average of the two <\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#temperatures on each day and call that result 'avg'. 2nd, calculate the <\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#the difference between the Foot-out temperature and the Foot-in temperature on <\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#each day, and call that result 'differ'. <\/span>\r\ndf2 = <a href=\"http:\/\/inside-r.org\/r-doc\/base\/data.frame\"><span style=\"color: #003399; font-weight: bold;\">data.frame<\/span><\/a><span style=\"color: #009900;\">(<\/span>avg = <span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a><span style=\"color: #009900;\">[<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #009900;\">]<\/span> <span>+<\/span> <a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a><span style=\"color: #009900;\">[<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #009900;\">]<\/span><span style=\"color: #009900;\">)<\/span><span>\/<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #339933;\">,<\/span> differ = <span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a><span style=\"color: #009900;\">[<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #009900;\">]<\/span> <span>-<\/span> <a href=\"http:\/\/inside-r.org\/r-doc\/stats\/df\"><span style=\"color: #003399; font-weight: bold;\">df<\/span><\/a><span style=\"color: #009900;\">[<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #009900;\">]<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\r\n\u00a0\r\nprevious.theme = theme_set<span style=\"color: #009900;\">(<\/span>theme_bw<span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #666666; font-style: italic;\">#set black and white ggplot theme<\/span>\r\n\u00a0\r\n<span style=\"color: #666666; font-style: italic;\">#Define data to be plotted<\/span>\r\ndfplot = <a href=\"http:\/\/inside-r.org\/packages\/cran\/ggplot\"><span>ggplot<\/span><\/a><span style=\"color: #009900;\">(<\/span>df2<span style=\"color: #339933;\">,<\/span> aes<span style=\"color: #009900;\">(<\/span>x = avg<span style=\"color: #339933;\">,<\/span> y = differ<span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\r\n\u00a0\r\n<span style=\"color: #666666; font-style: italic;\">#Assemble a x-axis title. The 'atop' function allows you to have two lines of <\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#text in a pasted-together expression<\/span>\r\nmy.xlab = <a href=\"http:\/\/inside-r.org\/r-doc\/base\/expression\"><span style=\"color: #003399; font-weight: bold;\">expression<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/grDevices\/atop\"><span style=\"color: #003399; font-weight: bold;\">atop<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/base\/paste\"><span style=\"color: #003399; font-weight: bold;\">paste<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"Average Maximum Daily Body Temperature, \"<\/span><span style=\"color: #339933;\">,<\/span> degree<span style=\"color: #339933;\">,<\/span><span style=\"color: #0000ff;\">\"C\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">,<\/span>\r\n\t\t\t\t<span style=\"color: #0000ff;\">\" (Extended + Withdrawn)\/2\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#Assemble a y-axis title using the same method. Two spaces are needed after <\/span>\r\n<span style=\"color: #666666; font-style: italic;\">#\"Temperature\" to make proper spacing on the y-axis title for some reason<\/span>\r\nmy.ylab = <a href=\"http:\/\/inside-r.org\/r-doc\/base\/expression\"><span style=\"color: #003399; font-weight: bold;\">expression<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/grDevices\/atop\"><span style=\"color: #003399; font-weight: bold;\">atop<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/base\/paste\"><span style=\"color: #003399; font-weight: bold;\">paste<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"Difference Between Temperatures, \"<\/span><span style=\"color: #339933;\">,<\/span> degree<span style=\"color: #339933;\">,<\/span><span style=\"color: #0000ff;\">\"C\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">,<\/span>\r\n\t\t\t\t<span style=\"color: #0000ff;\">\" (Extended - Withdrawn)\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\r\n\u00a0\r\n<span style=\"color: #666666; font-style: italic;\">#Open a new png device to print the figure out to (or use tiff, pdf, etc).<\/span>\r\n<a href=\"http:\/\/inside-r.org\/r-doc\/grDevices\/png\"><span style=\"color: #003399; font-weight: bold;\">png<\/span><\/a><span style=\"color: #009900;\">(<\/span>filename = <span style=\"color: #0000ff;\">\"figure_x2.png\"<\/span><span style=\"color: #339933;\">,<\/span> width = <span style=\"color: #cc66cc;\">600<\/span><span style=\"color: #339933;\">,<\/span> height = <span style=\"color: #cc66cc;\">600<\/span><span style=\"color: #339933;\">,<\/span> <a href=\"http:\/\/inside-r.org\/r-doc\/base\/units\"><span style=\"color: #003399; font-weight: bold;\">units<\/span><\/a> = <span style=\"color: #0000ff;\">'px'<\/span><span style=\"color: #009900;\">)<\/span>\r\n<a href=\"http:\/\/inside-r.org\/r-doc\/base\/print\"><span style=\"color: #003399; font-weight: bold;\">print<\/span><\/a><span style=\"color: #009900;\">(<\/span>dfplot <span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Define point shape and set alpha transparency<\/span>\r\n\t\t\t\tgeom_point<span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/packages\/cran\/shape\"><span>shape<\/span><\/a> = <span style=\"color: #cc66cc;\">20<\/span><span style=\"color: #339933;\">,<\/span> color = alpha<span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"black\"<\/span><span style=\"color: #339933;\">,<\/span> <span style=\"color: #cc66cc;\">1<\/span><span>\/<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>\r\n\t\t\t\txlab<span style=\"color: #009900;\">(<\/span>my.xlab<span style=\"color: #009900;\">)<\/span> <span>+<\/span> <span style=\"color: #666666; font-style: italic;\">#insert the x-axis title<\/span>\r\n\t\t\t\tylab<span style=\"color: #009900;\">(<\/span>my.ylab<span style=\"color: #009900;\">)<\/span> <span>+<\/span> <span style=\"color: #666666; font-style: italic;\">#insert the y-axis title<\/span>\r\n\t\t\t\txlim<span style=\"color: #009900;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>  <span style=\"color: #666666; font-style: italic;\">#set the x-axis limits explicitly<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Adjust the plot margins slightly<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>plot.margin = <a href=\"http:\/\/inside-r.org\/r-doc\/grid\/unit\"><span style=\"color: #003399; font-weight: bold;\">unit<\/span><\/a><span style=\"color: #009900;\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/base\/c\"><span style=\"color: #003399; font-weight: bold;\">c<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #339933;\">,<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">,<\/span> <span style=\"color: #0000ff;\">\"lines\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Adjust the font size and margin location of the x-axis title<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>axis.title.x = theme_text<span style=\"color: #009900;\">(<\/span>size = <span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #339933;\">,<\/span> vjust = <span>-<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span><span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Adjust the font, angle, and margin location of the y-axis title<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>axis.title.y = theme_text<span style=\"color: #009900;\">(<\/span>size = <span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #339933;\">,<\/span> angle = <span style=\"color: #cc66cc;\">90<\/span><span style=\"color: #339933;\">,<\/span> vjust = <span style=\"color: #cc66cc;\">0.25<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Adjust the font size of the tick labels on the x-axis<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>axis.text.x = theme_text<span style=\"color: #009900;\">(<\/span>size = <span style=\"color: #cc66cc;\">14<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Adjust the font size of the tick labels on the y-axis<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>axis.text.y = theme_text<span style=\"color: #009900;\">(<\/span>size = <span style=\"color: #cc66cc;\">14<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span> <span>+<\/span>\r\n\t\t\t\t<span style=\"color: #666666; font-style: italic;\">#Draw only the major grid lines<\/span>\r\n\t\t\t\topts<span style=\"color: #009900;\">(<\/span>panel.grid.minor = theme_blank<span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span>\r\n<span style=\"color: #009900;\">)<\/span>\r\n<a href=\"http:\/\/inside-r.org\/r-doc\/grDevices\/dev.off\"><span style=\"color: #003399; font-weight: bold;\">dev.off<\/span><\/a><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #666666; font-style: italic;\">#close the png device to save the figure.<\/span><\/pre>\n<\/div>\n<\/div>\n<p><a title=\"Created by Pretty R at inside-R.org\" href=\"http:\/\/www.inside-r.org\/pretty-r\">Created by Pretty R at inside-R.org<\/a><\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_982\" aria-describedby=\"caption-attachment-982\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/figure_x2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-982\" title=\"figure_x2\" src=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/figure_x2-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/figure_x2-300x300.png 300w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/figure_x2-150x150.png 150w, https:\/\/lukemiller.org\/wp-content\/uploads\/2011\/07\/figure_x2.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-982\" class=\"wp-caption-text\">The new figure, produced following Rick Wicklin&#39;s suggestion.<\/figcaption><\/figure>\n<p>The astute viewer will note the handful of negative values in the data set. The goal of the model in the <a href=\"http:\/\/www.biolbull.org\/cgi\/content\/abstract\/220\/3\/209\">original paper<\/a> was to explore the effects of different <em><a href=\"http:\/\/www.lukemiller.org\/wp-content\/themes\/miller_theme\/images\/header_img.png\">Littorina<\/a> <\/em>snail postures and morphological variation on body temperature. In this figure we have shown the difference in maximum body temperature on each day in a 10-year dataset, and three of those days show the snail with its foot withdrawn having a higher body temperature than the same snail with the foot on the rock (producing the negative values on the y-axis). The simplest physical explanation for this sort of occurrence is that these were likely days with minimal sunshine to warm the rock surface, and an air temperature that was slightly warmer than the rock surface temperature. As a result, a snail that pulled its foot into the shell might be warmed primarily by the air, while a snail with the foot on the rock is very much tied to whatever the (cold) rock surface temperature is. Since we are dealing with daily maximum temperatures here, this sort of situation is very rare, since on most days a bit of sun will tend to warm the rock surface enough to make the extended-foot snail warmer than the withdrawn-foot snail. In examining the full time series of temperatures rather than just the daily maxima, you will find more instances where a snail with the foot withdrawn is kept relatively warmer by the air temperature for brief periods on cold, dark days.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rick Wicklin contacted me with a helpful suggestion for improving the data presentation method outlined in my\u00a0 previous post on using ggplot2 to visualize some data. In the previous post I had plotted up a highly correlated set of points, showing the correspondence between maximum daily body temperatures of model snails sitting with the foot [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[218],"tags":[95,91,96,93],"class_list":["post-979","post","type-post","status-publish","format-standard","hentry","category-r-project","tag-body-temperature","tag-ggplot2","tag-littorina","tag-scatterplot"],"_links":{"self":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/comments?post=979"}],"version-history":[{"count":4,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/979\/revisions"}],"predecessor-version":[{"id":984,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/posts\/979\/revisions\/984"}],"wp:attachment":[{"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/media?parent=979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/categories?post=979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukemiller.org\/index.php\/wp-json\/wp\/v2\/tags?post=979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}