数据可视化第八天(同位置多柱状图)

同位置多柱状图主要是通过width重新获得x的坐标,第一个位置是ps,第二个就是ps+width,第三个就是pos+width*width进行绘制.
通过fig的add_subplot()函数进行子图的选取

在这里插入图片描述

# 国家
countries = ['China', 'Japan', 'American', 'England', 'Germany']

# 金牌个数
gold_medal = [16, 12, 9, 8, 8]
# 银牌个数
silver_medal = [8, 10, 4, 10, 5]
# 铜牌个数
bronze_medal = [13, 5, 2, 7, 5]


# 设置画布
fig = plt.figure(figsize=(6,5),dpi=150)

ax1=fig.add_subplot(234)
ax1.set_title('gold')
ax1.bar(countries,gold_medal,color='gold')
#旋转x标签
ax1.tick_params(axis='x',rotation=45)


# 一个画布分为2行3列,定位第二个
ax2 = fig.add_subplot(235)

ax2.set_title("sliver")
# 旋转x标签
ax2.tick_params(axis="x",rotation=45)

# 银牌榜
ax2.bar(countries, silver_medal, color="silver")

# 一个画布分为2行3列,定位第二个
ax3 = fig.add_subplot(236)

ax3.set_title("bronze")
# 旋转x标签
ax3.tick_params(axis="x",rotation=45)

# 铜牌榜
ax3.bar(countries, bronze_medal, color="#A0522D")

# ================绘制总图:绘制2行一列,移动到第一行======
ax = fig.add_subplot(211)

# 1.将x轴转换为数值
x_int = np.arange(len(countries))

# 2.设置图形的宽度
width = 0.2

# 确定x起始位置
gold_x = x_int  # 金牌起始位置

silver_x = x_int+width  # 银牌的起始位置

bronze_x = x_int + 2*width # 铜牌的起始位置

# 分别绘制图形

ax.bar(gold_x, gold_medal, width=width,color="gold", label="gold")  # 金牌图形

ax.bar(silver_x, silver_medal, width=width, color="silver",label="sliver") # 银牌图形

ax.bar(bronze_x, bronze_medal, width=width, color="saddlebrown",label="bronze") # 铜牌图形

# 将x轴的坐标变回来

# plt.xticks(x_int,labels=countries)
# 移动x标记的位置,再替换内容
ax.set_xticks(x_int + width)

ax.set_xticklabels(countries )

#-----------显示高度文本----------------
# 金牌 # 银牌 # 铜牌
for i in range(len(countries)):
    # 金牌
    ax.text(gold_x[i],gold_medal[i], gold_medal[i],va="bottom",ha="center",fontsize=8)
    # 银牌
    ax.text(silver_x[i],silver_medal[i], gold_medal[i],va="bottom",ha="center",fontsize=8)
    # 铜牌
    ax.text(bronze_x[i],bronze_medal[i], gold_medal[i],va="bottom",ha="center",fontsize=8)
    

# 显示图例
ax.legend(fontsize=6 )

plt.tight_layout()
plt.show()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言中可以使用barplot()函数来创建柱形进行数据。例如,使用以下代码可以创建一个显示教育支出每个学生的年度变的柱形: ```R barplot(education$spending, names.arg = education$year, ylab = "Spending per student($)", main = "Education Spending per Student", ylim=c(0,7000)) ``` 这个函数的第一个参数是用于绘制柱形数据。在这个例子中,我们使用了一个名为`education`的数据集,并提取了`spending`列作为柱形数据。 `names.arg`参数表示每个柱子对应的x值,这里使用了`education`数据集中的`year`列作为x轴刻度标签。 `ylab`参数用于设置y轴标题,`main`参数用于设置柱形的标题,`ylim`参数用于设置y轴的范围。 通过调整`width`参数可以调整每个柱子的宽度,而`space`参数可以调整柱子之间的距离。 另外,还可以使用`stripchart()`函数创建带进行数据。带类似于一维的散点,可以直观展示数据的分布。例如,使用以下代码可以创建两个带来展示一组数据的分布: ```R data <- c(1, 1, 2, 3, 5, 8, 13, 21, 34) par(mfrow=c(1, 2)) stripchart(data, method = "jitter", jitter=1) stripchart(data, method = "stack", offset=1) ``` 这个例子中,我们使用了一个名为`data`的向量作为数据。`stripchart()`函数的`method`参数控制数据点的重叠方式,`"jitter"`表示避免互相重叠,`"stack"`表示将数值相同的点并列显示,默认的`"overplot"`生成的所有数据在一条直线上。通过调整`jitter`参数可以控制数据点为了避免重叠而进行分散的程度,而`offset`参数可以控制数值相同的点之间的间隔。 在这个例子中,我们使用了`par(mfrow=c(1, 2))`来设置两张并排显示,格式为1行2列。 以上就是使用R语言进行柱形和带数据的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [(四)R语言的数据——矩阵、柱、饼、散点与线性回归、带](https://blog.csdn.net/EricFrenzy/article/details/119301267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值