{"id":8421,"date":"2019-01-13T20:51:03","date_gmt":"2019-01-13T18:51:03","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?p=8421"},"modified":"2019-12-25T10:55:48","modified_gmt":"2019-12-25T08:55:48","slug":"ggplot-examples-best-reference","status":"publish","type":"post","link":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/","title":{"rendered":"GGPlot Examples Best Reference"},"content":{"rendered":"<div id=\"rdoc\">\n<p>This article provides a gallery of <strong>ggplot examples<\/strong>, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.<\/p>\n<p>Contents:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=\"#scatter-plot\">Scatter plot<\/a><\/li>\n<li><a href=\"#distribution\">Distribution<\/a>\n<ul>\n<li><a href=\"#density-plot\">Density plot<\/a><\/li>\n<li><a href=\"#histogram\">Histogram<\/a><\/li>\n<li><a href=\"#qq-plot\">QQ Plot<\/a><\/li>\n<li><a href=\"#empirical-cumulative-distribution-ecdf\">Empirical cumulative distribution (ECDF)<\/a><\/li>\n<li><a href=\"#density-ridgeline-plots\">Density ridgeline plots<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#bar-charts-and-alternatives\">Bar charts and alternatives<\/a><\/li>\n<li><a href=\"#line-plot-ex\">Line plot<\/a><\/li>\n<li><a href=\"#error-bars\">Error bars<\/a><\/li>\n<li><a href=\"#box-plots-and-alternatives\">Box plots and alternatives<\/a><\/li>\n<li><a href=\"#time-series-data-visualization\">Time series data visualization<\/a><\/li>\n<li><a href=\"#scatter-plot-matrix\">scatter plot matrix<\/a><\/li>\n<li><a href=\"#correlation-analysis\">Correlation analysis<\/a><\/li>\n<li><a href=\"#cluster-analysis\">Cluster analysis<\/a><\/li>\n<li><a href=\"#balloon-plot\">Balloon plot<\/a><\/li>\n<\/ul>\n<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div class='dt-sc-ico-content type1'><div class='custom-icon' ><a href='https:\/\/www.datanovia.com\/en\/product\/ggplot2-essentials-for-great-data-visualization-in-r\/' target='_blank'><span class='fa fa-book'><\/span><\/a><\/div><h4><a href='https:\/\/www.datanovia.com\/en\/product\/ggplot2-essentials-for-great-data-visualization-in-r\/' target='_blank'> Related Book <\/a><\/h4>GGPlot2 Essentials for Great Data Visualization in R<\/div>\n<div class='dt-sc-hr-invisible-medium  '><\/div>\n<div id=\"prerequisites\" class=\"section level2\">\n<h2>Prerequisites<\/h2>\n<p>Load required packages and set the theme function <code>theme_bw()<\/code> as the default theme:<\/p>\n<pre class=\"r\"><code>library(tidyverse)\r\nlibrary(ggpubr) \r\ntheme_set(\r\n  theme_bw() + \r\n  theme(legend.position = \"top\")\r\n  )<\/code><\/pre>\n<\/div>\n<div id=\"scatter-plot\" class=\"section level2\">\n<h2>Scatter plot<\/h2>\n<ul>\n<li><strong>Basic scatter<\/strong> plot with correlation coefficient. The function <code>stat_cor()<\/code> [ggpubr R package] is used to add the correlation coefficient.<\/li>\n<\/ul>\n<pre class=\"r\"><code>library(\"ggpubr\")\r\np &lt;- ggplot(mtcars, aes(mpg, wt)) +\r\n  geom_point() +\r\n  geom_smooth(method = lm) +\r\n  stat_cor(method = \"pearson\", label.x = 20)\r\np<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-scatter-plot-1.png\" width=\"384\" \/><\/p>\n<ul>\n<li><strong>Contextual zoom<\/strong>. Key R function <code>facet_zoom()<\/code> [ggforce]<\/li>\n<\/ul>\n<pre class=\"r\"><code>library(ggforce)\r\nggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +\r\n    geom_point() +\r\n    facet_zoom(x = Species == \"versicolor\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-zoom-1.png\" width=\"480\" \/><\/p>\n<ul>\n<li><strong>Encircle some points<\/strong>. The function <code>geom_encircle()<\/code> [ggalt R package] can be used to encircle a certain group of points<\/li>\n<\/ul>\n<pre class=\"r\"><code># Encircle setosa group\r\nlibrary(\"ggalt\")\r\ncircle.df &lt;- iris %&gt;% filter(Species == \"setosa\")\r\nggplot(iris, aes(Petal.Length, Petal.Width)) +\r\n    geom_point(aes(colour = Species)) + \r\n  geom_encircle(data = circle.df, linetype = 2)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-encircle-points-1.png\" width=\"384\" \/><\/p>\n<ul>\n<li><strong>Create jittered points to avoid overlap<\/strong>. The overlapping points are randomly jittered around their original position based on a threshold controlled by the <code>width<\/code> argument in the function `geom_jitter()<\/li>\n<\/ul>\n<pre class=\"r\"><code># Basic scatter plot\r\nggplot(mpg, aes(cty, hwy)) +\r\n  geom_point(size = 0.5)\r\n\r\n# Jittered points\r\nggplot(mpg, aes(cty, hwy)) +\r\n  geom_jitter(size = 0.5, width = 0.5)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-avoid-overlap-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-avoid-overlap-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li><strong>Create count charts to avoid overlap<\/strong>. Wherever there is more points overlap, the size of the circle gets bigger.<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggplot(mpg, aes(cty, hwy)) +\r\n  geom_count()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-count-chart-1.png\" width=\"480\" \/><\/p>\n<ul>\n<li><strong>Bubble chart<\/strong>. In a bubble chart, points size is controlled by a continuous variable, here qsec.<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggplot(mtcars, aes(mpg, wt)) +\r\n  geom_point(aes(size = qsec), alpha = 0.5) +\r\n  scale_size(range = c(0.5, 12))  # Adjust the range of points size<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-bubble-chart-1.png\" width=\"432\" \/><\/p>\n<ul>\n<li><strong>Marginal density plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code>library(ggpubr)\r\n# Grouped Scatter plot with marginal density plots\r\nggscatterhist(\r\n  iris, x = \"Sepal.Length\", y = \"Sepal.Width\",\r\n  color = \"Species\", size = 3, alpha = 0.6,\r\n  palette = c(\"#00AFBB\", \"#E7B800\", \"#FC4E07\"),\r\n  margin.params = list(fill = \"Species\", color = \"black\", size = 0.2)\r\n  )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-marginal-density-plots-1.png\" width=\"480\" \/><\/p>\n<pre class=\"r\"><code># Use box plot as marginal plots\r\nggscatterhist(\r\n  iris, x = \"Sepal.Length\", y = \"Sepal.Width\",\r\n  color = \"Species\", size = 3, alpha = 0.6,\r\n  palette = c(\"#00AFBB\", \"#E7B800\", \"#FC4E07\"),\r\n  margin.plot = \"boxplot\",\r\n  ggtheme = theme_bw()\r\n  )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-marginal-density-plots-2.png\" width=\"480\" \/><\/p>\n<\/div>\n<div id=\"distribution\" class=\"section level2\">\n<h2>Distribution<\/h2>\n<div id=\"density-plot\" class=\"section level3\">\n<h3>Density plot<\/h3>\n<ul>\n<li>Basic density plot:<\/li>\n<\/ul>\n<pre class=\"r\"><code># Basic density plot\r\nggplot(iris, aes(Sepal.Length)) +\r\n  geom_density()\r\n\r\n# Add mean line\r\nggplot(iris, aes(Sepal.Length)) +\r\n  geom_density(fill = \"lightgray\") +\r\n  geom_vline(aes(xintercept = mean(Sepal.Length)), linetype = 2)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-density-plot-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-density-plot-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li>Change color by groups<\/li>\n<\/ul>\n<pre class=\"r\"><code># Change line color by groups\r\nggplot(iris, aes(Sepal.Length, color = Species)) +\r\n  geom_density() +\r\n  scale_color_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-colored-density-plot-1.png\" width=\"384\" \/><\/p>\n<pre class=\"r\"><code># Add mean line by groups\r\nmu &lt;- iris %&gt;%\r\n  group_by(Species) %&gt;%\r\n  summarise(grp.mean = mean(Sepal.Length))\r\n\r\nggplot(iris, aes(Sepal.Length, color = Species)) +\r\n  geom_density() +\r\n  geom_vline(aes(xintercept = grp.mean, color = Species),\r\n             data = mu, linetype = 2) +\r\n  scale_color_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-colored-density-plot-2.png\" width=\"384\" \/><\/p>\n<\/div>\n<div id=\"histogram\" class=\"section level3\">\n<h3>Histogram<\/h3>\n<ul>\n<li>Basic histograms<\/li>\n<\/ul>\n<pre class=\"r\"><code># Basic histogram with mean line\r\nggplot(iris, aes(Sepal.Length)) +\r\n  geom_histogram(bins = 20, fill = \"white\", color = \"black\")  +\r\n  geom_vline(aes(xintercept = mean(Sepal.Length)), linetype = 2)\r\n\r\n# Add density curves\r\nggplot(iris, aes(Sepal.Length, stat(density))) +\r\n  geom_histogram(bins = 20, fill = \"white\", color = \"black\")  +\r\n  geom_density() +\r\n  geom_vline(aes(xintercept = mean(Sepal.Length)), linetype = 2)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-histogram-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-histogram-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li>Change color by groups<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggplot(iris, aes(Sepal.Length)) +\r\n  geom_histogram(aes(fill = Species, color = Species), bins = 20, \r\n                 position = \"identity\", alpha = 0.5) +\r\n  scale_fill_viridis_d() +\r\n  scale_color_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-histogram-colored-by-goups-1.png\" width=\"480\" \/><\/p>\n<\/div>\n<div id=\"qq-plot\" class=\"section level3\">\n<h3>QQ Plot<\/h3>\n<pre class=\"r\"><code>library(ggpubr)\r\nggqqplot(iris, x = \"Sepal.Length\",\r\n   ggtheme = theme_bw())<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-qq-plot-1.png\" width=\"336\" \/><\/p>\n<\/div>\n<div id=\"empirical-cumulative-distribution-ecdf\" class=\"section level3\">\n<h3>Empirical cumulative distribution (ECDF)<\/h3>\n<pre class=\"r\"><code>ggplot(iris, aes(Sepal.Length)) +\r\n  stat_ecdf(aes(color = Species)) +\r\n  scale_color_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-ecdf-1.png\" width=\"432\" \/><\/p>\n<\/div>\n<div id=\"density-ridgeline-plots\" class=\"section level3\">\n<h3>Density ridgeline plots<\/h3>\n<p>The density ridgeline plot is an alternative to the standard geom_density() function that can be useful for visualizing changes in distributions, of a continuous variable, over time or space. Ridgeline plots are partially overlapping line plots that create the impression of a mountain range.<\/p>\n<pre class=\"r\"><code>library(ggridges)\r\nggplot(iris, aes(x = Sepal.Length, y = Species)) +\r\n  geom_density_ridges(aes(fill = Species)) +\r\n  scale_fill_manual(values = c(\"#00AFBB\", \"#E7B800\", \"#FC4E07\"))<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-density-ridgeline-1.png\" width=\"480\" \/><\/p>\n<\/div>\n<\/div>\n<div id=\"bar-charts-and-alternatives\" class=\"section level2\">\n<h2>Bar charts and alternatives<\/h2>\n<ul>\n<li><strong>Data<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code>df &lt;- mtcars %&gt;%\r\n  rownames_to_column() %&gt;%\r\n  as_data_frame() %&gt;%\r\n  mutate(cyl = as.factor(cyl)) %&gt;%\r\n  select(rowname, wt, mpg, cyl)\r\ndf<\/code><\/pre>\n<pre><code>## # A tibble: 32 x 4\r\n##   rowname              wt   mpg cyl  \r\n##   &lt;chr&gt;             &lt;dbl&gt; &lt;dbl&gt; &lt;fct&gt;\r\n## 1 Mazda RX4          2.62  21   6    \r\n## 2 Mazda RX4 Wag      2.88  21   6    \r\n## 3 Datsun 710         2.32  22.8 4    \r\n## 4 Hornet 4 Drive     3.22  21.4 6    \r\n## 5 Hornet Sportabout  3.44  18.7 8    \r\n## 6 Valiant            3.46  18.1 6    \r\n## # ... with 26 more rows<\/code><\/pre>\n<ul>\n<li><strong>Basic bar plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Basic bar plots\r\nggplot(df, aes(x = rowname, y = mpg)) +\r\n  geom_col() +\r\n  rotate_x_text(angle = 45)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-basic-barplot-1.png\" width=\"528\" \/><\/p>\n<pre class=\"r\"><code># Reorder row names by mpg values\r\nggplot(df, aes(x = reorder(rowname, mpg), y = mpg)) +\r\n  geom_col()  +\r\n  rotate_x_text(angle = 45)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-basic-barplot-2.png\" width=\"528\" \/><\/p>\n<ul>\n<li><strong>Horizontal bar plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Horizontal bar plots, \r\n# change fill color by groups and add text labels\r\nggplot(df, aes(x = reorder(rowname, mpg), y = mpg)) +\r\n  geom_col( aes(fill = cyl)) + \r\n  geom_text(aes(label = mpg), nudge_y = 2) + \r\n  coord_flip() +\r\n  scale_fill_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-horizontal-bar-plot-1.png\" width=\"480\" \/><\/p>\n<ul>\n<li><strong>Order bars by groups and by mpg values<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code>df2 &lt;- df %&gt;% \r\n  arrange(cyl, mpg) %&gt;%\r\n  mutate(rowname = factor(rowname, levels = rowname))\r\n\r\nggplot(df2, aes(x = rowname, y = mpg)) +\r\n  geom_col( aes(fill = cyl)) + \r\n  scale_fill_viridis_d() +\r\n  rotate_x_text(45)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-ordered-barplots-1.png\" width=\"576\" \/><\/p>\n<ul>\n<li><strong>Lollipop chart<\/strong>: Lollipop is an alternative to bar charts when you have large data sets.<\/li>\n<\/ul>\n<pre class=\"r\"><code>ggplot(df2, aes(x = rowname, y = mpg)) +\r\n  geom_segment(\r\n    aes(x = rowname, xend = rowname, y = 0, yend = mpg), \r\n    color = \"lightgray\"\r\n    ) + \r\n  geom_point(aes(color = cyl), size = 3) +\r\n  scale_color_viridis_d() +\r\n  theme_pubclean() +\r\n  rotate_x_text(45)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-lollipop-chart-1.png\" width=\"576\" \/><\/p>\n<ul>\n<li><strong>Bar plot with multiple groups<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Data\r\ndf3 &lt;- data.frame(supp=rep(c(\"VC\", \"OJ\"), each=3),\r\n                dose=rep(c(\"D0.5\", \"D1\", \"D2\"),2),\r\n                len=c(6.8, 15, 33, 4.2, 10, 29.5))\r\n\r\n\r\n# Stacked bar plots of y = counts by x = cut,\r\n# colored by the variable color\r\nggplot(df3, aes(x = dose, y = len)) +\r\n  geom_col(aes(color = supp, fill = supp), position = position_stack()) +\r\n  scale_color_manual(values = c(\"#0073C2FF\", \"#EFC000FF\"))+\r\n  scale_fill_manual(values = c(\"#0073C2FF\", \"#EFC000FF\"))\r\n\r\n# Use position = position_dodge() \r\nggplot(df3, aes(x = dose, y = len)) +\r\n  geom_col(aes(color = supp, fill = supp), position = position_dodge(0.8), width = 0.7) +\r\n  scale_color_manual(values = c(\"#0073C2FF\", \"#EFC000FF\"))+\r\n  scale_fill_manual(values = c(\"#0073C2FF\", \"#EFC000FF\"))<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-bar-chart-with-multiple-groups-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-bar-chart-with-multiple-groups-2.png\" width=\"288\" \/><\/p>\n<\/div>\n<div id=\"line-plot-ex\" class=\"section level2\">\n<h2>Line plot<\/h2>\n<pre class=\"r\"><code># Data\r\ndf3 &lt;- data.frame(supp=rep(c(\"VC\", \"OJ\"), each=3),\r\n                dose=rep(c(\"D0.5\", \"D1\", \"D2\"),2),\r\n                len=c(6.8, 15, 33, 4.2, 10, 29.5))\r\n\r\n# Line plot\r\nggplot(df3, aes(x = dose, y = len, group = supp)) +\r\n  geom_line(aes(linetype = supp)) +\r\n  geom_point(aes(shape = supp))<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-line-plot-1.png\" width=\"384\" \/><\/p>\n<\/div>\n<div id=\"error-bars\" class=\"section level2\">\n<h2>Error bars<\/h2>\n<ul>\n<li><strong>Data<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Raw data\r\ndf &lt;- ToothGrowth %&gt;% mutate(dose = as.factor(dose))\r\nhead(df, 3)<\/code><\/pre>\n<pre><code>##    len supp dose\r\n## 1  4.2   VC  0.5\r\n## 2 11.5   VC  0.5\r\n## 3  7.3   VC  0.5<\/code><\/pre>\n<pre class=\"r\"><code># Summary statistics\r\ndf.summary &lt;- df %&gt;%\r\n  group_by(dose) %&gt;%\r\n  summarise(sd = sd(len, na.rm = TRUE), len = mean(len))\r\ndf.summary<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 3\r\n##   dose     sd   len\r\n##   &lt;fct&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 0.5    4.50  10.6\r\n## 2 1      4.42  19.7\r\n## 3 2      3.77  26.1<\/code><\/pre>\n<ul>\n<li><strong>Basic line and bar plots with error bars<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># (1) Line plot\r\nggplot(df.summary, aes(dose, len)) +\r\n  geom_line(aes(group = 1)) +\r\n  geom_errorbar( aes(ymin = len-sd, ymax = len+sd),width = 0.2) +\r\n  geom_point(size = 2)\r\n\r\n# (2) Bar plot\r\nggplot(df.summary, aes(dose, len)) +\r\n  geom_bar(stat = \"identity\", fill = \"lightgray\", color = \"black\") +\r\n  geom_errorbar(aes(ymin = len, ymax = len+sd), width = 0.2) <\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-error-bars-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-error-bars-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li><strong>Grouped line\/bar plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Data preparation\r\ndf.summary2 &lt;- df %&gt;%\r\n  group_by(dose, supp) %&gt;%\r\n  summarise( sd = sd(len), len = mean(len))\r\ndf.summary2<\/code><\/pre>\n<pre><code>## # A tibble: 6 x 4\r\n## # Groups:   dose [?]\r\n##   dose  supp     sd   len\r\n##   &lt;fct&gt; &lt;fct&gt; &lt;dbl&gt; &lt;dbl&gt;\r\n## 1 0.5   OJ     4.46 13.2 \r\n## 2 0.5   VC     2.75  7.98\r\n## 3 1     OJ     3.91 22.7 \r\n## 4 1     VC     2.52 16.8 \r\n## 5 2     OJ     2.66 26.1 \r\n## 6 2     VC     4.80 26.1<\/code><\/pre>\n<pre class=\"r\"><code># (1) Line plot + error bars\r\nggplot(df.summary2, aes(dose, len)) +\r\n  geom_line(aes(linetype = supp, group = supp))+\r\n  geom_point()+\r\n  geom_errorbar(\r\n    aes(ymin = len-sd, ymax = len+sd, group = supp),\r\n     width = 0.2\r\n    )<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-error-bars-group-1.png\" width=\"384\" \/><\/p>\n<pre class=\"r\"><code># (2) Bar plots + upper error bars.\r\nggplot(df.summary2, aes(dose, len)) +\r\n  geom_bar(aes(fill = supp), stat = \"identity\",\r\n           position = position_dodge(0.8), width = 0.7)+\r\n  geom_errorbar(\r\n    aes(ymin = len, ymax = len+sd, group = supp),\r\n    width = 0.2, position = position_dodge(0.8)\r\n    )+\r\n  scale_fill_manual(values = c(\"grey80\", \"grey30\"))<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-error-bars-group-2.png\" width=\"384\" \/><\/p>\n<\/div>\n<div id=\"box-plots-and-alternatives\" class=\"section level2\">\n<h2>Box plots and alternatives<\/h2>\n<ul>\n<li><strong>Data<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code>ToothGrowth$dose &lt;- as.factor(ToothGrowth$dose)<\/code><\/pre>\n<ul>\n<li><strong>Basic box plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Basic\r\nggplot(ToothGrowth, aes(dose, len)) +\r\n  geom_boxplot()\r\n\r\n# Box plot + violin plot\r\nggplot(ToothGrowth, aes(dose, len)) +\r\n  geom_violin(trim = FALSE) +\r\n  geom_boxplot(width = 0.2)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-basic-box-plots-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-basic-box-plots-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li><strong>Add jittered points and dot plot<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Add jittered points\r\nggplot(ToothGrowth, aes(dose, len)) +\r\n  geom_boxplot() +\r\n  geom_jitter(width = 0.2)\r\n\r\n# Dot plot + box plot\r\nggplot(ToothGrowth, aes(dose, len)) +\r\n  geom_boxplot() +\r\n  geom_dotplot(binaxis = \"y\", stackdir = \"center\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-box-plot-with-points-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-box-plot-with-points-2.png\" width=\"288\" \/><\/p>\n<ul>\n<li><strong>Grouped plots<\/strong><\/li>\n<\/ul>\n<pre class=\"r\"><code># Box plots\r\nggplot(ToothGrowth, aes(dose, len)) +\r\n  geom_boxplot(aes(color = supp)) +\r\n  scale_color_viridis_d()\r\n\r\n# Add jittered points\r\nggplot(ToothGrowth, aes(dose, len, color = supp)) +\r\n  geom_boxplot() +\r\n  geom_jitter(position = position_jitterdodge(jitter.width = 0.2)) +\r\n  scale_color_viridis_d()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-grouped-box-plots-1.png\" width=\"288\" \/><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-grouped-box-plots-2.png\" width=\"288\" \/><\/p>\n<\/div>\n<div id=\"time-series-data-visualization\" class=\"section level2\">\n<h2>Time series data visualization<\/h2>\n<pre class=\"r\"><code># Data preparation\r\ndf &lt;- economics %&gt;%\r\n  select(date, psavert, uempmed) %&gt;%\r\n  gather(key = \"variable\", value = \"value\", -date)\r\nhead(df, 3)<\/code><\/pre>\n<pre><code>## # A tibble: 3 x 3\r\n##   date       variable value\r\n##   &lt;date&gt;     &lt;chr&gt;    &lt;dbl&gt;\r\n## 1 1967-07-01 psavert   12.5\r\n## 2 1967-08-01 psavert   12.5\r\n## 3 1967-09-01 psavert   11.7<\/code><\/pre>\n<pre class=\"r\"><code># Multiple line plot\r\nggplot(df, aes(x = date, y = value)) + \r\n  geom_line(aes(color = variable), size = 1) +\r\n  scale_color_manual(values = c(\"#00AFBB\", \"#E7B800\")) +\r\n  theme_minimal()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-time-series-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"scatter-plot-matrix\" class=\"section level2\">\n<h2>scatter plot matrix<\/h2>\n<pre class=\"r\"><code>library(GGally)\r\nggpairs(iris[,-5])+ theme_bw()<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-scatter-plot-matrix-1.png\" width=\"576\" \/><\/p>\n<\/div>\n<div id=\"correlation-analysis\" class=\"section level2\">\n<h2>Correlation analysis<\/h2>\n<pre class=\"r\"><code>library(\"ggcorrplot\")\r\n# Compute a correlation matrix\r\nmy_data &lt;- mtcars[, c(1,3,4,5,6,7)]\r\ncorr &lt;- round(cor(my_data), 1)\r\n# Visualize\r\nggcorrplot(corr, p.mat = cor_pmat(my_data),\r\n           hc.order = TRUE, type = \"lower\",\r\n           color = c(\"#FC4E07\", \"white\", \"#00AFBB\"),\r\n           outline.col = \"white\", lab = TRUE)<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-correlation-matrix-1.png\" width=\"480\" \/><\/p>\n<\/div>\n<div id=\"cluster-analysis\" class=\"section level2\">\n<h2>Cluster analysis<\/h2>\n<pre class=\"r\"><code>library(factoextra)\r\nUSArrests %&gt;%\r\n  scale() %&gt;%                           # Scale the data\r\n  dist() %&gt;%                            # Compute distance matrix\r\n  hclust(method = \"ward.D2\") %&gt;%        # Hierarchical clustering\r\n  fviz_dend(cex = 0.5, k = 4, palette = \"jco\") # Visualize and cut \r\n                                              # into 4 groups<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-cluster-analysis-1.png\" width=\"480\" \/><\/p>\n<\/div>\n<div id=\"balloon-plot\" class=\"section level2\">\n<h2>Balloon plot<\/h2>\n<p>Balloon plot is an alternative to bar plot for visualizing a large categorical data.<\/p>\n<pre class=\"r\"><code>library(ggpubr)\r\n# Data preparation\r\nhousetasks &lt;- read.delim(\r\n  system.file(\"demo-data\/housetasks.txt\", package = \"ggpubr\"),\r\n  row.names = 1\r\n  )\r\nhead(housetasks, 4)<\/code><\/pre>\n<pre><code>##            Wife Alternating Husband Jointly\r\n## Laundry     156          14       2       4\r\n## Main_meal   124          20       5       4\r\n## Dinner       77          11       7      13\r\n## Breakfeast   82          36      15       7<\/code><\/pre>\n<pre class=\"r\"><code># Visualization\r\nggballoonplot(housetasks, fill = \"value\")+\r\n  scale_fill_viridis_c(option = \"C\")<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/ggplot2\/figures\/128-ggplot-examples-balloon-plot-1.png\" width=\"384\" \/><\/p>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more. Contents: Prerequisites Scatter [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7705,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rating_form_position":"","rating_results_position":"","mr_structured_data_type":"","footnotes":""},"categories":[124],"tags":[],"class_list":["post-8421","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ggplot2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>GGPlot Examples Best Reference - Datanovia<\/title>\n<meta name=\"description\" content=\"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GGPlot Examples Best Reference - Datanovia\" \/>\n<meta property=\"og:description\" content=\"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-13T18:51:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-25T08:55:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alboukadel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alboukadel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\"},\"author\":{\"name\":\"Alboukadel\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e\"},\"headline\":\"GGPlot Examples Best Reference\",\"datePublished\":\"2019-01-13T18:51:03+00:00\",\"dateModified\":\"2019-12-25T08:55:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\"},\"wordCount\":411,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg\",\"articleSection\":[\"ggplot2\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\",\"name\":\"GGPlot Examples Best Reference - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg\",\"datePublished\":\"2019-01-13T18:51:03+00:00\",\"dateModified\":\"2019-12-25T08:55:48+00:00\",\"description\":\"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GGPlot Examples Best Reference\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"name\":\"Datanovia\",\"description\":\"Data Mining and Statistics for Decision Support\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e\",\"name\":\"Alboukadel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g\",\"caption\":\"Alboukadel\"},\"url\":\"https:\/\/www.datanovia.com\/en\/blog\/author\/kassambara\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GGPlot Examples Best Reference - Datanovia","description":"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.","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:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/","og_locale":"en_US","og_type":"article","og_title":"GGPlot Examples Best Reference - Datanovia","og_description":"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.","og_url":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/","og_site_name":"Datanovia","article_published_time":"2019-01-13T18:51:03+00:00","article_modified_time":"2019-12-25T08:55:48+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg","type":"image\/jpeg"}],"author":"Alboukadel","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Alboukadel","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#article","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/"},"author":{"name":"Alboukadel","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e"},"headline":"GGPlot Examples Best Reference","datePublished":"2019-01-13T18:51:03+00:00","dateModified":"2019-12-25T08:55:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/"},"wordCount":411,"commentCount":3,"publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg","articleSection":["ggplot2"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/","url":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/","name":"GGPlot Examples Best Reference - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg","datePublished":"2019-01-13T18:51:03+00:00","dateModified":"2019-12-25T08:55:48+00:00","description":"This article provides a gallery of ggplot examples, including: scatter plot, density plots and histograms, bar and line plots, error bars, box plots, violin plots and more.","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_4933.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/blog\/ggplot-examples-best-reference\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/"},{"@type":"ListItem","position":2,"name":"GGPlot Examples Best Reference"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/#website","url":"https:\/\/www.datanovia.com\/en\/","name":"Datanovia","description":"Data Mining and Statistics for Decision Support","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/7767cf2bd5c91a1610c6eb53a0ff069e","name":"Alboukadel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed3108646c5c7c3d188324ab972f96ad7d9975b41b94014d7f68257791be395a?s=96&d=mm&r=g","caption":"Alboukadel"},"url":"https:\/\/www.datanovia.com\/en\/blog\/author\/kassambara\/"}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/posts\/8421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/comments?post=8421"}],"version-history":[{"count":1,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/posts\/8421\/revisions"}],"predecessor-version":[{"id":8422,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/posts\/8421\/revisions\/8422"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media\/7705"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media?parent=8421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/categories?post=8421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/tags?post=8421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}