In this project we attempt to map agriculture exports in the USA with the help of the plotly package.The export data in csv format is available here.
df%>%head()
library(plotly)
df <- read.csv("https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv")
df$hover <- with(df, paste(state, '<br>', "Beef", beef, "Dairy", dairy, "<br>",
"Fruits", total.fruits, "Veggies", total.veggies,
"<br>", "Wheat", wheat, "Corn", corn))
# give state boundaries a white border
l <- list(color = toRGB("white"), width = 2)
# specify some map projection/options
g <- list(
scope = 'usa',
projection = list(type = 'albers usa'),
showlakes = TRUE,
lakecolor = toRGB('white')
)
p <- plot_geo(df, locationmode = 'USA-states') %>%
add_trace(
z = ~total.exports, text = ~hover, locations = ~code,
color = ~total.exports,colors = viridis_pal(option="D")(3)
) %>%
colorbar(title = "Millions USD") %>%
layout(
title = '2011 US Agriculture Exports by State',
geo = g
)
p%>%
layout(autosize = F, width = 700, height = 700)
Specifying width/height in layout() is now deprecated.
Please specify in ggplotly() or plot_ly()
# Create a shareable link to your chart
#Set up API credentials: https://plot.ly/r/getting-started
#chart_link = plotly_POST(p, filename="p")
#api_create(p)
#chart_link
#api_download_plot()
LS0tCnRpdGxlOiAiTWFwcGluZyBBZ3JpY3VsdHVyZSBFeHBvcnRzIGluIHRoZSBVU0EgIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKYXV0aG9yOiBOYW5hIEJvYXRlbmcKZGZfcHJpbnQ6IHBhZ2VkClRpbWU6ICdgciBTeXMudGltZSgpYCcKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJUIgJWQsICVZJylgIgotLS0KCkluIHRoaXMgcHJvamVjdCB3ZSBhdHRlbXB0IHRvIG1hcCBhZ3JpY3VsdHVyZSBleHBvcnRzIGluIHRoZSBVU0Egd2l0aCB0aGUgaGVscCBvZiB0aGUgcGxvdGx5IHBhY2thZ2UuVGhlIGV4cG9ydCBkYXRhIGluIGNzdiBmb3JtYXQgaXMgYXZhaWxhYmxlICBbaGVyZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Bsb3RseS9kYXRhc2V0cy9tYXN0ZXIvMjAxMV91c19hZ19leHBvcnRzLmNzdikuCgoKCgoKCgoKYGBge3IgICBzZXR1cCwgaW5jbHVkZT1GQUxTRSB9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBJbnN0YWxsIHBhY2thZ2VzIG5vdCBhbHJlYWR5IGluc3RhbGxlZCBpbiBhIGxpc3QKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCgpsaXN0PWMoInRpZHl2ZXJzZSIsInN0cmluZ3IiLCJmb3JjYXRzIiwiZ2dtYXAiLCJydmVzdCIsInRtIiwKICAgICAgICJzdHJpbmdpIiwKICAgICAgICJwbG90bHkiLAogICAgICAgImRhdGEudGFibGUiLCJ2aXJpZGlzIiwKICAgICAgICJnZ3RoZW1lcyIsCiAgICAgICAiaHR0ciIsImxlYWZsZXQiLCJjaG9yb3BsZXRock1hcHMiLCJjaG9yb3BsZXRociIsImNob3JvcGxldGhyQWRtaW4xIikKCgoKbGlzdF9wYWNrYWdlcyA8LSBsaXN0Cm5ldy5wYWNrYWdlcyA8LSBsaXN0X3BhY2thZ2VzWyEobGlzdF9wYWNrYWdlcyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpWywiUGFja2FnZSJdKV0KaWYobGVuZ3RoKG5ldy5wYWNrYWdlcykpIGluc3RhbGwucGFja2FnZXMobmV3LnBhY2thZ2VzKQoKUjwtc3VwcHJlc3NXYXJuaW5ncyhzdXBwcmVzc01lc3NhZ2VzKHNhcHBseShsaXN0LCBsaWJyYXJ5LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSkKCmBgYAoKCgoKCmBgYHtyfQpkZiU+JWhlYWQoKQoKYGBgCgoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQpkZiA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Bsb3RseS9kYXRhc2V0cy9tYXN0ZXIvMjAxMV91c19hZ19leHBvcnRzLmNzdiIpCmRmJGhvdmVyIDwtIHdpdGgoZGYsIHBhc3RlKHN0YXRlLCAnPGJyPicsICJCZWVmIiwgYmVlZiwgIkRhaXJ5IiwgZGFpcnksICI8YnI+IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZydWl0cyIsIHRvdGFsLmZydWl0cywgIlZlZ2dpZXMiLCB0b3RhbC52ZWdnaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiPGJyPiIsICJXaGVhdCIsIHdoZWF0LCAiQ29ybiIsIGNvcm4pKQojIGdpdmUgc3RhdGUgYm91bmRhcmllcyBhIHdoaXRlIGJvcmRlcgpsIDwtIGxpc3QoY29sb3IgPSB0b1JHQigid2hpdGUiKSwgd2lkdGggPSAyKQojIHNwZWNpZnkgc29tZSBtYXAgcHJvamVjdGlvbi9vcHRpb25zCmcgPC0gbGlzdCgKICBzY29wZSA9ICd1c2EnLAogIHByb2plY3Rpb24gPSBsaXN0KHR5cGUgPSAnYWxiZXJzIHVzYScpLAogIHNob3dsYWtlcyA9IFRSVUUsCiAgbGFrZWNvbG9yID0gdG9SR0IoJ3doaXRlJykKKQoKcCA8LSBwbG90X2dlbyhkZiwgbG9jYXRpb25tb2RlID0gJ1VTQS1zdGF0ZXMnKSAlPiUKICBhZGRfdHJhY2UoCiAgICB6ID0gfnRvdGFsLmV4cG9ydHMsIHRleHQgPSB+aG92ZXIsIGxvY2F0aW9ucyA9IH5jb2RlLAogICAgY29sb3IgPSB+dG90YWwuZXhwb3J0cyxjb2xvcnMgPSB2aXJpZGlzX3BhbChvcHRpb249IkQiKSgzKQogICkgJT4lCiAgY29sb3JiYXIodGl0bGUgPSAiTWlsbGlvbnMgVVNEIikgJT4lCiAgbGF5b3V0KAogICAgdGl0bGUgPSAnMjAxMSBVUyBBZ3JpY3VsdHVyZSBFeHBvcnRzIGJ5IFN0YXRlJywKICAgIGdlbyA9IGcKICApCgpwJT4lCiAgbGF5b3V0KGF1dG9zaXplID0gRiwgd2lkdGggPSA3MDAsIGhlaWdodCA9IDcwMCkKCgoKIyBDcmVhdGUgYSBzaGFyZWFibGUgbGluayB0byB5b3VyIGNoYXJ0CiNTZXQgdXAgQVBJIGNyZWRlbnRpYWxzOiBodHRwczovL3Bsb3QubHkvci9nZXR0aW5nLXN0YXJ0ZWQKI2NoYXJ0X2xpbmsgPSBwbG90bHlfUE9TVChwLCBmaWxlbmFtZT0icCIpCiNhcGlfY3JlYXRlKHApCiNjaGFydF9saW5rCiNhcGlfZG93bmxvYWRfcGxvdCgpCmBgYAoK