柱形图图形绘制

柱形图

一、用途及参数介绍

1、用于二维数据,一般有一个分类变量,需要对每个分类进行计数或百分比。

plt.bar(x,height,width,color)

2、x记录x轴上的标签

3、height记录每个柱的高度

4、width设置每个柱的宽度

5、color设置柱颜色,传入颜色值得列表。

二、绘制简易柱状图

1、开启jupyter notebook的matplotlib支持

%matplotlib inline

2、导包

from matplotlib import pyplot as plt

from matplotlob imprort font_manager

3、自定义字体

myfont=font_manager.FontProperties('字体目录+位置')

4、准备数据

x=[]

y=[]

5、准备画布

plt.figure(figsize=(20,8),dpi=80)

6、绘制柱形图

plt.bar(x,y)

7、显示图形

plt.show()

三、丰富、美化柱形图(如果需要从DataFrame中取值,需要tolist()转换为列表格式)

1、修改柱状图的宽度

plt.bar(x,y,width=0.3)

2、修改柱状图的颜色

(1)英文单词

plt.bar(x,y,width=0.3,color=['red','yellow','green','blue','gray','black']) #颜色个数与x的个数相同

(2)RGB十六进制

plt.bar(x,y,width=0.3,color=[十六进制颜色列表,每个颜色的值都用英文引号括起]) #颜色个数与x的个数相同

3、给柱状图添加文字描述信息

plt.xticks(x,fontproperties=myfont)

plt.xticks(range(4),['北京市','上海市','天津市','重庆市'])  #可以通过先分刻度,再赋标签值的方法添加标签

4、在柱状图上添加标注,水平居中

(1)rects=plt.bar(x,y,width=0.3,color=['red','yellow','green','blue','gray','black'])

for rect in rects:

    height=rect.get_height()

    plt.text(rect.get_x()+rect.get_width()/2,height+0.3,str(height),ha='center')

参数解释:

rect.get_x()   柱形图的左边的x值

rect.get_width()s  柱形图的宽度

rect.get_height()  柱形图的高度

ha  水平位置设置

(2)通过enumerate函数添加

plt.figure(figsize=(20,8),dpi=80)

plt.bar(range(4),y)

plt.ylabel('Y')

plt.title('四个直辖市GDP大比拼')

plt.xticks(range(4),['北京市','上海市','天津市','重庆市'])

plt.ylim([5000,15000])

for x,y in enumerate(GDP):

    plt.text(x,y,'%s' %round(y,1),ha='center')

四、创建一组多柱图形

1、导包、显示汉字

%matplotlib inline

import matplotlib.pyplot as plt

import random

import numpy as np

plt.rc('font', family='SimHei', size=13)

2、准备数据

x = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']

y1 = [89, 45, 56, 74, 23, 21]

y2 = [56, 77, 93, 68, 45, 67]

3、设定x轴的刻度和画布大小

x_location = np.arange(len(x))

plt.figure(figsize=(8, 5)) 

plt.bar(x_location, y1, label='线下', width=0.3)

plt.bar(x_location+0.3, y2, label='线上',width=0.3)

plt.xticks(x_location+0.15, x)

plt.legend()

plt.title('各手机品牌销售额对比', loc="left",

          fontdict={'fontsize':18,'color':'red'})

你可能感兴趣的:(柱形图图形绘制)