Matplotlib柱状图 - plt.bar()、plt.barh()
一、plt.bar()、plt.barh()参数详解简介:plt.bar():正常柱状图????????,常见的统计图;plt.barh():横向的柱状图,可以理解为正常柱状图旋转了90°。import matplotlib as mplimport matplotlib.pyplot as pltfrom matplotlib.pyplot import MultipleLocatorfrom
一、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()
更多推荐
所有评论(0)