我是靠谱客的博主 仁爱缘分,最近开发中收集的这篇文章主要介绍matplotlib.pyplot.bar的使用——绘制堆叠柱状图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考官网:matplotlib.pyplot.bar

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align=‘center’, data=None, **kwargs)
x:要显示的x轴的数据序列。
height:要显示的y轴的数据序列。

使用bar绘制堆叠的柱状图

代码如下:

# TODO: 画出device_conn_type和CTR相关的histogram, 参考问题6的效果图。
# import matplotlib.ticker as ticker
x = sorted(list(data_df['device_conn_type'].unique()))
y_0 = []
y_1 = []
for i in x:
    length = len(data_df[data_df['device_conn_type']==i])
    rate_0 = len(data_df[(data_df['click']==0) & (data_df['device_conn_type']==i)])/length
    rate_1 = len(data_df[(data_df['click']==1) & (data_df['device_conn_type']==i)])/length
    y_0.append(rate_0)
    y_1.append(rate_1)
    
print(y_0)
print(y_1)
# 使用bar()来绘制堆叠柱状图
plt.bar(range(len(x)), y_0, width=0.5, color='red', label=0)
plt.bar(range(len(x)), y_1, width=0.5, color='blue', label=1, bottom=y_0)
plt.title("CTR for device_conn_type feature")
plt.xlabel("device_conn_type")
plt.xticks(range(len(x)), x)
plt.legend(title='click', loc='lower right')
# plt.xticks(rotation=90)    # 设置横坐标标签旋转角度。
plt.show()

如果只是按照官网提供的代码画柱状图,x轴将按顺序显示。如1,2,3…
此处借助 plt.xticks 对x轴进行自定义刻度,可显示为0,2,3,5。将bar中的x设置为range(len(x)),再通过plt.xticks来设置x显示的刻度值,plt.xticks(range(len(x)),x),其中参数1为长度,参数x为要显示的值的具体内容。xticks的参数 rotation 可以设置x轴刻度的显示旋转方向。
效果如下图所示:
在这里插入图片描述

最后

以上就是仁爱缘分为你收集整理的matplotlib.pyplot.bar的使用——绘制堆叠柱状图的全部内容,希望文章能够帮你解决matplotlib.pyplot.bar的使用——绘制堆叠柱状图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部