matplotlib绘制图形

matplotlib

一、绘制饼图

1.直接生成饼图

import matplotlib.pyplot as plt
edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
#要生成图的数据
labels = ['中专','大专','本科','硕士','其他']
#各项数据顺序对应的文本标签
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#防止中文乱码
colors=['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555']  
#自定义颜色
plt.rcParams['axes.unicode_minus'] = False
plt.axes(aspect='equal')
#将横、纵坐标标准化处理,确保饼图是一个正园,否则为椭圆
plt.pie(x = edu,
       explode=explode,
        #吐出显示大专人群
       labels=labels,
       #添加教育水平标签
       colors=colors,
       #设置饼图的自定义填充色
       autopct='%.1f%%',
       pctdistance=0.8,
       #设置百分比标签与圆心的距离
       labeldistance=1.1,
       #设置教育水平标签与圆心的距离
       startangle=180,
       #设置饼图的初始角度
       radius=1.2,
       #设置饼图的半径
       counterclock=False,
       #是否逆时针,这里设置为顺时针方向
       wedgeprops={
   'linewidth':1.5,'edgecolor':'green'},
        #设置饼图内外边界的属性值
       textprops={
   'fontsize':10,'color':'black'},
        #设置文本标签的属性值
       )
#绘制饼图
plt.title('失信用户的教育水平')
#添加图标题
plt.show()

2.用数组生成饼图

import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#防止中文乱码
plt.rcParams['axes.unicode_minus'] = False
data1 = pd.Series({
   '中专':0.2515,'大专':0.3724,'本科':0.3336,'硕士':0.0368,'其他':0.0057})
data1.name = ''
#将序列的名称设置为空字符,否则绘制的饼图左边会出现None这样的字眼
plt.axes(aspect = 'equal')
#控制饼图为正圆
data1.plot(kind = 'pie',
           #选择图形类型
           autopct='%.1f%%',
           #饼图中添加数值标签
           radius = 1,
           #设置饼图的半径
           startangle = 180,
           #设置饼图的初始角度
           counterclock = False,
           #将饼图的顺序设置为顺时针方向
           title = '失信用户的受教育水平分布',
           #为饼图添加标题
           wedgeprops = {
   'linewidth':1.5,'edgecolor':'green'},
           #设置饼图内外边界的属性值
           textprops = {
   'fontsize':10,'color':'black'}
           #设置文本标签的属性值
          )
plt.show()
#显示图形

二、绘制条形图

1.绘制垂直条形图

#条形图的绘制——垂直条形图
GDP = pd.read_excel(r'E:\Province GDP 2017.xlsx')
#读入数据
plt.style.use('ggplot')
#设置绘图风格
plt.bar(x = range(GDP.shape[0]),
        #指定条形图x轴的刻度值(若要生成水平条形图,则改为y=)
        height = GDP.GDP,
        #指定条形图y轴的数值
        tick_label = GDP.Province,
        #指定条形图x轴的刻度标签
        color = 'steelblue',
        #指定条形图的填充色
       )
#绘制条形图
plt.ylabel('GDP(万亿)')
#添加y轴的标题
plt.title('2017年度6个省份GDP分布')
#添加条形图的标题
for x,y in enumerate(GDP.GDP):
    plt.text(x,y+0.1,'%s' %round(y,1),ha='center')
#为每个条形图添加数值标签
plt.show()
#显示图形

2.绘制水平条形图

#条形图的绘制——水平条形图
GDP.sort_values(by = 'GDP',inplace = True)
#对读入的数据作升序排序
plt.barh(y = range(GDP.shape[0]),
         #指定条形图y轴的刻度值
         width = GDP.GDP,
         #指定条形图x轴的刻度值
         tick_label = GDP.Province,
         #指定条形图y轴的刻度标签
         color = 'steelblue',
         #指定条形图的填充色
        )
#绘制条形图
plt.xlabel('GDP(万亿)')
#添加x轴的标签
plt.title('2017年度6个省份GDP分布')
#添加条形图的标题
for x,y in enumerate(GDP.GDP):
    plt.text(x+0.1,y,'%s' %round(x,1),va='center')
#为每个条形图添加数值标签
plt.show()
#显示图形

3.绘制堆叠条形图

堆叠条形图原理:用好几段水平or垂直条形图,分别用不同的颜色

import pandas as pd
import matplotlib.pyplot as plt
#条形图的绘制——堆叠条形图
Industry_GDP = pd.read_excel(r
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值