一、plt.bar()、plt.barh()参数详解
简介:
plt.bar():正常柱状图📊📊,常见的统计图;
plt.barh():横向的柱状图,可以理解为正常柱状图旋转了90°。

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
from matplotlib import ticker
%matplotlib inline


plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

# 横向柱状图barh,简单理解bar旋转90°
plt.barh(y, width, height=0.8, left=None, *, align='center', **kwargs)

常用参数解释:
plt.bar()
x:表示x坐标,数据类型为int或float类型,刻度自适应调整;也可传dataframe的object,x轴上等间距排列;
height:表示柱状图的高度,也就是y坐标值,数据类型为int或float类型;
width:表示柱状图的宽度,取值在0~1之间,默认为0.8;
bottom:柱状图的起始位置,也就是y轴的起始坐标;
align:柱状图的中心位置,默认"center"居中,可设置为"lege"边缘;
color:柱状图颜色;
edgecolor:边框颜色;
linewidth:边框宽度;
tick_label:下标标签;
log:柱状图y周使用科学计算方法,bool类型;
orientation:柱状图是竖直还是水平,竖直:“vertical”,水平条:“horizontal”;

plt.barh()
y:表示y坐标,数据类型为int或float类型,刻度自适应调整;也可传dataframe的object,y轴上等间距排列;
height:表示柱状图的长度,也就是x坐标值,数据类型为int或float类型;
width:表示柱状图的高度,取值在0~1之间,默认为0.8;
其他参数与plt.bar()类似。

plt.bar()综合应用

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
from matplotlib import ticker
%matplotlib inline


# 第一个坐标轴和图
fig = plt.figure(figsize=(8,5), dpi=80)
ax = fig.add_subplot(1,1,1)
plt.subplot(1, 1, 1)

# 画多个图,传递多个不同的x轴刻度
x = [i for i in range(25)]  # x轴标准刻度
x1 = [i-0.2 for i in range(25)]  # 第一个图x轴左偏移0.2
x2 = [i+0.2 for i in range(25)]  # 第二个图x周右偏移0.2,防止重叠
xx = data3['sku_pri'].to_list()  # x周的刻度显示

ax.set_ylabel('y轴1的名称')
ax.set_xlabel('x周名字')
plt.bar(x1, data3['num_sales']/10000, width=0.4, label='第一张图')
plt.ylim(0,4000)
plt.xticks(x,xx)  # x周刻度显示
plt.title('plt.plot()综合应用')
ax.legend(loc='upper left')

# 第二个坐标轴和图
ax2 = ax.twinx()
ax2.spines['right'].set_position(('axes', 1.0))
ax2.set_ylabel('y轴2的名称')
plt.bar(x2, data3['lk_num']/10000, width=0.4, color='orange', label='第二张图')
plt.ylim(0,200)
plt.xticks(x,xx)
ax2.legend(loc='upper center')

# 第三个坐标和图
ax3 = ax.twinx()
ax3.spines['right'].set_position(('axes', 1.1))  # 1.1向右便宜避免重叠
ax3.set_ylabel('y轴3的名称')
plt.plot(x, data3['lk_ra'], marker='*',color='purple', label='第三张图')
plt.ylim(0,0.12)

# y轴3设置刻度未百分比
ax3.yaxis.set_major_locator(MultipleLocator(0.02))
ax3.yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1, decimals=0))
plt.xticks(x,xx)

ax3.legend(loc='upper right')

# plt.savefig('保存图片名称'+'.png')
plt.show()

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐