【R语言可视化】-- 柱状图要点一网打尽

大家好!欢迎关注可视化艺术!本公众号由生信师兄创办并持续更新!为了方便各位小伙伴更好的学习各种可视化技术!本公众号旨在从各种常用可视化软件出发,带大家更好的完成自己想要的Figure制作!

创作不易!您的点赞和在看是对师兄最大的支持和鼓励!

先对这一系列做个简单说明:本系列旨在通过R语言编程,实现数据的各种可视化!其中主要用到的R包为ggplot2不会再讲解R语言自带的基础函数,如plot、barplot等!因为师兄凭借多年的实战经验,可以很明确的告诉大家,R语言可视化用的最多的R包就是ggplot2,只要你掌握了ggplot2,作图的效果完全可以吊打那些R自带的函数,所以没必要再把所有函数再学一遍!

当然了!如果有小伙伴想要了解更全面的内容:欢迎关注**【生信师兄】-- R语言绘图系列**。

代码和示例数据获取

柱状图简介

柱状图可能是最常用的一种数据可视化。它们通常用于显示数值(在y轴上),用于显示不同类别的数值(在x轴上)。例如,柱状图可以用来显示四种不同商品的价格。柱状图通常不适合显示一段时间内的价格,因为时间是一个连续的变量。

基础柱状图

  • ggplot基础语法解析:

    ggplot(data, aes(X,Y)) + geom_bar()

    data:数据,注意data必须为数据框格式;

    X:X轴对应的变量名;

    Y:Y轴对应的变量名;

    geom_bar:绘图函数,类似的还有geom_point、geom_bin、geom_boxplot、geom_density等等

# stat="bin"(默认):柱高为各个分类数目;
ggplot(mtcars,aes(factor(cyl))) + geom_bar()

# stat="identity"柱高分类所占比例。
ggplot(BOD,aes(factor(Time),demand)) + geom_bar(stat = "identity")

image-20220710162314508

image-20220710162325281

再详细解释一下stat参数:stat表示X和Y的对应状态;

  • bin:用于X为一个分类变量,Y对应的是X每一类的个数;故只需要指定X即可;例如上图1,只指定了X,Y根据X的类别个数自动识别;
  • identity:这个就很好理解了,就是X和Y一一对应,需要指定X和Y;如上图2;

柱状图修改颜色和分组

通过fill指定填充颜色,color指定描边颜色:
library(gcookbook)

# 修改柱状图的填充(fill)和描边(color):
ggplot(pg_mean,aes(group, weight)) + 
  geom_bar(stat = "identity",fill = "lightblue", color = "black")

image-20220710162344961

通过分组设置颜色:
# 也可通过分组变量设置颜色:
ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity")

  • 23
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我了解您的要求,以下是回答: 为了实现您的要求,我使用Python语言和Matplotlib库来可展示Titanic数据集的数据分布。 首先是舱位等级和存活的柱,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个舱位等级的存活人数 survived_by_pclass = titanic_data.groupby('Pclass')['Survived'].sum() # 绘制柱 plt.bar(survived_by_pclass.index, survived_by_pclass.values) plt.xticks([1, 2, 3]) plt.xlabel('Pclass') plt.ylabel('Survived') plt.title('Survived by Pclass') plt.show() ``` 接下来是登陆港口和存活的柱,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个登陆港口的存活人数 survived_by_embarked = titanic_data.groupby('Embarked')['Survived'].sum() # 绘制柱 plt.bar(survived_by_embarked.index, survived_by_embarked.values) plt.xlabel('Embarked') plt.ylabel('Survived') plt.title('Survived by Embarked') plt.show() ``` 然后是年龄和舱位等级的箱线,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制箱线 plt.boxplot([titanic_data[titanic_data.Pclass == 1].Age.dropna(), titanic_data[titanic_data.Pclass == 2].Age.dropna(), titanic_data[titanic_data.Pclass == 3].Age.dropna()]) plt.xticks([1, 2, 3], ['1st', '2nd', '3rd']) plt.xlabel('Pclass') plt.ylabel('Age') plt.title('Age by Pclass') plt.show() ``` 最后是年龄和存活的直方,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制直方 plt.hist([titanic_data[titanic_data.Survived == 0].Age.dropna(), titanic_data[titanic_data.Survived == 1].Age.dropna()], bins=20, label=['Not survived', 'Survived']) plt.xlabel('Age') plt.ylabel('Frequency') plt.title('Survival by Age') plt.legend() plt.show() ``` 以上是对Titanic数据集的数据分布可展示,希望能够满足您的需求。如有其他问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可视化艺术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值