chapter.matplotlib可视化1.2柱状图

目录

    • 基本使用
    • 设置柱状图的填充颜色
    • 设置柱状图填充颜色的透明度
    • 绘制格网
    • 设置柱状图宽度
    • 绘制水平柱状图
    • 刻度和标签
    • 设置图例

基本使用

绘制柱状图主要使用matplotlib的bar函数。相比于pandas,matplotlib绘制起来较复杂,需要传入刻度列表和高度列表。
实例:绘制简单的柱状图

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data=[20,80,70,40,100]
plt.bar([1,2,3,4,5],data)

运行结果:
chapter.matplotlib可视化1.2柱状图_第1张图片

设置柱状图的填充颜色

实例接上
最后一行代码修改为:
plt.bar([1,2,3,4,5],data,color='pink')
运行结果如下:
chapter.matplotlib可视化1.2柱状图_第2张图片
填充为紫色

plt.bar([1,2,3,4,5],data,color='purple')

chapter.matplotlib可视化1.2柱状图_第3张图片

设置柱状图填充颜色的透明度

使用alpha参数设置透明度
实例同上。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data=[20,80,70,40,100]
plt.bar([1,2,3,4,5],data,color='purple',alpha=0.1)

运行结果:
chapter.matplotlib可视化1.2柱状图_第4张图片
alpha参数的值设置为0.5试一下
chapter.matplotlib可视化1.2柱状图_第5张图片

绘制格网

使用grid函数可以绘制格网,通过对其参数设置已达到个性化效果。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data=[20,80,70,40,100]
plt.bar([1,2,3,4,5],data,color='purple',alpha=0.5)
plt.grid(color='#95a5a6',linestyle='--',linewidth=1,axis='y',alpha=0.6)

运行结果:
chapter.matplotlib可视化1.2柱状图_第6张图片

设置柱状图宽度

从上面的实例可以看出没有设置柱状图宽度时默认很宽,不太好看。使用width参数设置宽度。
实例:

import pandas as pd
import numpy as up
import matplotlib.pyplot as plt
%matplotlib inline
data1=[20,80,70,40,100]
data2=[30,50,50,80,90]
width=0.2
plt.bar(np.arange(len(data1)),data1,width=width)
plt.bar(np.arange(len(data2))+width,data2,width=width)

运行结果:
chapter.matplotlib可视化1.2柱状图_第7张图片
增加第三组数据

import pandas as pd
import numpy as up
import matplotlib.pyplot as plt
%matplotlib inline
data1=[20,80,70,40,100]
data2=[30,50,50,80,90]
data3=[40,30,70,40,20]
width=0.2
plt.bar(np.arange(len(data1))-width,data1,width=width)
plt.bar(np.arange(len(data2)),data2,width=width)
plt.bar(np.arange(len(data3))+width,data3,width=width)

运行结果:
chapter.matplotlib可视化1.2柱状图_第8张图片

绘制水平柱状图

类似于垂直柱状图。
只需把bar换成barh就可以了。
实例:

import pandas as pd
import numpy as up
import matplotlib.pyplot as plt
%matplotlib inline
data1=[20,80,70,40,100]
data2=[30,50,50,80,90]
data3=[40,30,70,40,20]
height=0.2
plt.barh(np.arange(len(data1))-height,data1,height=height)
plt.barh(np.arange(len(data2)),data2,height=height)
plt.barh(np.arange(len(data3))+height,data3,height=height)

运行结果:
chapter.matplotlib可视化1.2柱状图_第9张图片

刻度和标签

由上面的实例可以看出并没有设置刻度和标签,但是实际中为了让图更加直观,是要设置刻度以及标签的。
在matplotlib中可以使用xticks函数设置x轴的刻度及标签。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib 
%matplotlib inline
font={
    'family':'kaiti',
    'weight':'bold',
   
}
matplotlib.rc('font',**font)
labels=['数学','英语','语文','物理','历史']
data=[20,80,70,40,100]
plt.xticks(range(len(data)),labels)
plt.bar(range(len(data)),data)

运行结果:
chapter.matplotlib可视化1.2柱状图_第10张图片
也可以使用yticks函数设置y轴刻度标签。
通过xlabel ,ylabel方法可以给x,y轴设置标签。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib 
%matplotlib inline
font={
    'family':'kaiti',
    'weight':'bold',
   
}
matplotlib.rc('font',**font)
labels=['数学','英语','语文','物理','历史']
data=[20,80,70,40,100]
plt.xticks(range(len(data)),labels)
plt.xlabel('学科')#x轴标签
plt.ylabel('分数')#y轴标签
plt.title('成绩')#标题
plt.bar(range(len(data)),data)

运行结果:
chapter.matplotlib可视化1.2柱状图_第11张图片

设置图例

import pandas as pd
import numpy as up
import matplotlib.pyplot as plt
%matplotlib inline
data1=[20,80,70,40,100]
data2=[30,50,50,80,90]
data3=[40,30,70,40,20]
width=0.2
plt.bar(np.arange(len(data1))-width,data1,width=width,label='语文')
plt.bar(np.arange(len(data2)),data2,width=width,label='数学')
plt.bar(np.arange(len(data3))+width,data3,width=width,label='英语')
plt.legend()

运行结果:
chapter.matplotlib可视化1.2柱状图_第12张图片

你可能感兴趣的:(python数据分析)