📜  ggplot2-分散图表

📅  最后修改于: 2020-12-01 08:44:41             🧑  作者: Mango


在前面的章节中,我们介绍了可以使用“ ggplot2”包创建的各种图表。现在,我们将集中讨论相同的变化,例如发散的条形图,棒棒糖图等。首先,我们将开始创建分散的条形图,下面提到的步骤如下-

了解数据集

加载所需的程序包,并在mpg数据集中创建一个名为“ car name”的新列。

#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name`  # compute normalized mpg
> mtcars$mpg_z  # above / below avg flag
> mtcars$mpg_type  # sort
> mtcars 

上面的计算涉及为汽车名称创建新列,并在round函数的帮助下计算归一化数据集。我们还可以使用avg标记上下的值来获取“类型”功能的值。稍后,我们对值进行排序以创建所需的数据集。

收到的输出如下-

图表分散

将值转换为因数以在特定图中保留排序顺序,如下所述-

> # convert to factor to retain sorted order in plot.
> mtcars$`car name` 

获得的输出在下面提到-

图表分散

条形图发散

现在,使用上述属性创建一个发散的条形图,将其作为必需的坐标。

> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+    labels = c("Above Average", "Below Average"),
+    values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+    title= "Diverging Bars") +
+ coord_flip()

-某些尺寸成员的离散条形图标记相对于上述值指向向上或向下。

下面提到了分散条形图的输出,其中我们使用函数geom_bar创建条形图-

条形图发散

不同的棒棒糖图

创建具有相同属性和坐标且仅使用要更改的函数的不同棒棒糖图表,即geom_segment(),有助于创建棒棒糖图表。

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+    x = `car name`,
+    yend = mpg_z,
+    xend = `car name`),
+       color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+    subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

不同的棒棒糖图

散点图

以类似的方式创建发散的点图,其中点代表较大尺寸的散点图中的点。

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+  geom_point(stat='identity', aes(col=mpg_type), size=6) +
+  scale_color_manual(name="Mileage",
+     labels = c("Above Average", "Below Average"),
+     values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+     subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

散点图

在此,图例以绿色和红色的不同颜色表示值“高于平均值”和“低于平均值”。点图可传达静态信息。除了仅使用点外,原理与发散条形图中的原理相同。