python笔记35_1:数据可视化之一般柱状图

链接:https://pan.baidu.com/s/15jQhGzVV9zgYMWxstk-FwA
提取码:fb0c

# -*- coding: utf-8 -*-
#1. 概念:柱形图,是一种以长方形的单位长度,根据数据大小绘制的统计图,用来比较两个或两个以上的数据,可以是时间,也可以是不同类别,所以
#柱形图可以表示趋势,也可以表示不同项目间的对比,如果横轴是数值区间,还可以表示数据分布

#2. 柱形图绘图函数:
#绘制纵向的柱形图:bar(left,height,width,color)
#绘制横向的柱形图:barh(bottom,width,height,color)

#参数说明:
#left:x轴的位置序列。一般使用arange函数产生一个序列
#height:y轴的数值序列。也就是柱形图的高度,一般就是我们需要展示的数据
#width:柱形图的宽度。一般设置为1即可
#color:柱形图的填充颜色

#barh函数请根据方向一一对应即可

import numpy
import pandas
import matplotlib
from matplotlib import pyplot as plt

font = {
        'family':'SimHei'
        }
matplotlib.rc('font',**font)

data = pandas.read_csv("D:/workspaces/python/pythonStudy/35.csv") #列:号码、省份、手机品牌、通信品牌、手机操作系统、月消费(元)、月流量(M)

result = data.groupby(
                      by=['手机品牌'],
                        as_index=False
                      )['月消费(元)'].agg({'月消费':numpy.sum})
#竖向柱形图:
#使用arange函数生成间隔为1,数量为统计结果行数的递增序列,用来作为柱形图的x轴位置:
index = numpy.arange(result.月消费.size)
plt.bar(index,result['月消费'])
plt.show()

#执行以上代码图形就可以显示出来了,但是问题也很明显:颜色不好看、没有标签、柱子高度没有排序,显得凌乱。这样的柱形图绘制出来是没有意义的。

#优化点1:配置颜色
mainColor = (42/256,87/256,141/256,1)
plt.bar(
        index,result['月消费'],
        color=mainColor
        )
plt.show()

#优化点2:配置x轴刻度(标签)
plt.bar(
        index,result['月消费'],
        color=mainColor
        )
plt.xticks(index,result.手机品牌)
plt.show()

#优化点4:对数据排序后再绘图(因为我们发现有两个柱子的高度几乎相等,到底谁大谁小呢?)
sgb = result.sort_values(
                         by='月消费',
                         ascending=False  #降序
                         )
#sgb是排序后的数据框

plt.bar(index,sgb.月消费,
        color=mainColor
        )
plt.xticks(index,result.手机品牌)
plt.show()

#绘制横向柱形图:
plt.barh(index,sgb.月消费,
         color=mainColor)
plt.yticks(index,sgb.手机品牌)
plt.show()


#以上是单柱形图的绘制方法,下面开始学习多柱形图的绘制方法:
#请看下一个源程序文件

运行效果展示:
运行效果
由此可见,python在数据可视化的审美方面,确实还需要提高!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值