python绘制柱形图的方法

本文实例为大家分享了python绘制柱形图的具体代码,供大家参考,具体内容如下

#柱形图
import pandas
import numpy
import matplotlib 
from matplotlib import pyplot as plt
#导入数据
data_columns=pandas.read_csv('D://Python projects//reference data//6.4//data.csv')
#定义中文格式
font={'family':'MicroSoft Yahei',
      'weight':'bold',
      'size':12}
matplotlib.rc('font',**font)
#使用手机品牌作为分组列,月消费作为统计列
result_columns=data_columns.groupby(
        by=['手机品牌'],
        as_index=False)['月消费(元)'
                      ].agg({'月总消费':numpy.sum
                              })
#生成一个间隔为1的序列
index=numpy.arange(result_columns.月总消费.size)
#绘制纵向柱形图
plt.bar(index,result_columns['月总消费'])
#%matplotlib qt
plt.show()
#配置颜色
maincolor=(42/256,87/256,141/256,1)
plt.bar(index,
        result_columns['月总消费'])
plt.show()
#配置X轴标签
plt.bar(index,
        result_columns['月总消费'])
plt.xticks(index,result_columns.手机品牌)
plt.show()
#对数据进行降序排序后展示
result_asd=result_columns.sort_values(
        by='月总消费',
        ascending=False)
plt.bar(index,
        result_asd.月总消费,
        color=maincolor)
plt.xticks(index,result_asd.手机品牌)
plt.show()

结果为:

#横向柱形图
result_asd=result_columns.sort_values(
        by='月总消费',
        ascending=False)
plt.barh(index,
        result_asd.月总消费,
        color=maincolor)
plt.yticks(index,result_asd.手机品牌)
plt.show()

结果为:

#计算出交叉表的数据
result=data_columns.pivot_table(
        values='月消费(元)',
        index='手机品牌',
        columns='通信品牌',
        aggfunc=numpy.sum)

结果为:

#定义三个颜色
index=numpy.arange(len(result))
mincolor=(42/256,87/256,141/256,1/3)
midcolor=(42/256,87/256,141/256,2/3)
maxcolor=(42/256,87/256,141/256,1)
#建立簇状柱形图
plt.bar(
        index,
        result['全球通'],
        color=mincolor,
        width=1/4)
plt.bar(
        index+1/4,
        result['动感地带'],
        color=midcolor,
        width=1/4)
plt.bar(
        index+1/2,
        result['神州行'],
        color=maxcolor,
        width=1/4)
plt.xticks(index+1/3,result.index)
#添加图例
plt.legend(['全球通','动感地带','神州行'])
plt.show()

结果为:

#重新排序进行绘制
result=result.sort_values(
        by='神州行',
        ascending=False)
plt.bar(
        index,
        result['全球通'],
        color=mincolor,
        width=1/4)
plt.bar(
        index+1/4,
        result['动感地带'],
        color=midcolor,
        width=1/4)
plt.bar(
        index+1/2,
        result['神州行'],
        color=maxcolor,
        width=1/4)
plt.xticks(index+1/3,result.index)
plt.legend(['全球通','动感地带','神州行'])
plt.show()

结果为:

#绘制堆叠柱形图
result=result.sort_values(
        by='神州行',
        ascending=False)
plt.bar(
        index,
        result['全球通'],
        color=maxcolor)
plt.bar(
        index,
        result['动感地带'],
        bottom=result['全球通'],
        color=midcolor)
plt.bar(
        index,
        result['神州行'],
        bottom=result['全球通']+result['动感地带'],
        color=mincolor)
plt.xticks(index,result.index)
plt.legend(['全球通','动感地带','神州行'])
plt.show()

结果为:

#绘制双向柱形图
plt.barh(
        index,
        result['神州行'],
        color=midcolor)
plt.barh(
        index,
        -result['动感地带'],
        color=maxcolor)
plt.yticks(index,
           result.index)
plt.legend(['动感地带','神州行'])
plt.show()

结果为:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python绘制双柱形图代码实例

    图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身更多的信息(像数值的变化.对比或异常),图表就非常有用了.把数值转化为图片要依赖第三方库的帮忙,在Python之中最好的图表库叫matplotlib.(一直觉得,Python最大的优势就是丰富的第三方库,让你能轻易实现各种需求) matplotlib,顾名思义就是提供了一整套和matlab相似的AP

  • python绘制分组对比柱状图

    本文实例为大家分享了python绘制分组对比柱状图的具体代码,供大家参考,具体内容如下 首先放效果图:  # -*- coding: utf-8 -*- import numpy as np   import tensorflow as tf from matplotlib.path import Path from matplotlib.patches import PathPatch import matplotlib.pyplot as plt import matplotlib from

  • Python绘图之柱形图绘制详解

    前言 用python编程绘图,其实非常简单.中学生.大学生.研究生都能通过这10篇教程从入门到精通!快速绘制几种简单的柱状图. 1垂直柱图(普通柱图) 绘制普通柱图的python代码如下: (左右滑动可以查看全部代码) # -*- coding:utf-8 -*- # 申明编码格式为utf-8 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams["font.sans-serif"]=["S

  • Python使用bar绘制堆积/带误差棒柱形图的实现

    本博文源于<python数据可视化>(黑马程序员编著).先讲解bar参数如何使用,然后分别演示堆积柱形图和带误差柱形图画法. bar参数 bar(x,height,width=0.8,bottom=None,align='center',data=None, tick_label=None,xerr=None,yerr=None,error_kw=None,**kwargs) 该函数常用参数如下: x 表示x的坐标值 height:表示柱形的高度 width:表示柱形的宽度,默认为0.8 bo

  • 通过python读取txt文件和绘制柱形图的实现代码

    目的 临床数据的记录时间和对应标签(逗号后面的数字)记录在txt文件里,要把标签转换为3类标签,并且计算出每个标签的分别持续时间,然后绘制成柱形图方便查阅. 小难点分析: (1)txt的切割读取对应内容 (2)时间差计算 txt文件如图: 使用效果 首先将原始txt转换为  左列新标签 右列持续时间 绘制为柱形图 为了直观,每次只最多显示 2个小时,同时横坐标还是按照临床的记录时间顺序. 代码实现 # -*- coding: utf-8 -*- from datetime import date

  • 如何用Python绘制3D柱形图

    本文主要讲解如何使用python绘制三维的柱形图,如下图 源代码如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D #构造需要显示的值 X=np.arange(0, 5, step=1)#X轴的坐标 Y=np.arange(0, 9, step=1)#Y轴的坐标 #设置每一个(X,Y)坐标所对应的Z轴的值,在这边Z(X,Y)=X+Y Z=np.zeros(sh

  • python绘制横向水平柱状条形图

    python绘制横向水平柱状条形图Bar,供大家参考,具体内容如下 import matplotlib import random import matplotlib.pyplot as plt   # 中文乱码和坐标轴负号处理. matplotlib.rc('font', family='SimHei', weight='bold') plt.rcParams['axes.unicode_minus'] = False   #城市数据. city_name = ['北京', '上海', '广州

  • python中如何利用matplotlib画多个并列的柱状图

    首先如果柱状图中有中文,比如X轴和Y轴标签需要写中文,解决中文无法识别和乱码的情况,加下面这行代码就可以解决了: plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码 以下总共展示了三种画不同需求的柱状图: 画多组两个并列的柱状图: import matplotlib import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['S

  • Python数据可视化之绘制柱状图和条形图

    一.实验目的: 1.掌握Python中柱状图.条形图绘图函数的使用 2.利用上述绘图函数实现数据可视化 二.实验内容: 1.练习python中柱状图.条形图绘图函数的用法,掌握相关参数的概念 2.根据步骤一绘图函数要求,处理实验数据 3.根据步骤二得到的实验数据,绘制柱状图.条形图 4.练习如何通过调整参数使图片呈现不同效果,例如颜色.图例位置.背景网格.坐标轴刻度和标记等 三.实验过程(附结果截图): 1. 练习python中柱状图.条形图绘图函数的用法,掌握相关参数的概念 (1)练习绘制条形

  • Python实现双轴组合图表柱状图和折线图的具体流程

    Python绘制双轴组合的关键在plt库的twinx()函数,具体流程: 1.先建立坐标系,然后绘制主坐标轴上的图表: 2.再调用plt.twinx()方法: 3.最后绘制次坐标轴图表. import cx_Oracle import xlrd import xlwt import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker import FuncFormatter plt.rcParams['font.s

随机推荐