码迷,mamicode.com
首页 > 其他好文 > 详细

统计类别数量并且使用pyplot画出柱状图

时间:2016-09-20 11:42:30      阅读:642      评论:0      收藏:0      [点我收藏+]

标签:

从数据库中读取数据,具体操作为:

# -*- coding: utf-8 -*-
from numpy import *
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine(mysql+pymysql://root:123456@127.0.0.1:3306/db_websiterecommend?charset=utf8)
sql = pd.read_sql(t_url_classify, engine, chunksize = 110000)
output=C:\\Users\\lenovo\\Desktop\\count_.xls
‘‘‘z
用create_engine建立连接,连接地址的意思依次为“数据库格式(mysql)+程序名(pymysql)+账号密码@地址端口/数据库名(test)”,最后指定编码为utf8;
all_gzdata是表名,engine是连接数据的引擎,chunksize指定每次读取1万条记录。这时候sql是一个容器,未真正读取数据。
‘‘‘
counts = [ i[classify].value_counts() for i in sql] #逐块统计
counts = pd.concat(counts).groupby(level=0).sum() #合并统计结果,把相同的统计项合并(即按index分组并求和)
counts = counts.reset_index() #重新设置index,将原来的index作为counts的一列。
counts.columns = [type, num]
counts=pd.DataFrame(counts)
print(counts)
import matplotlib.pyplot as plt
plt.rcParams[font.sans-serif]=[SimHei]
plt.rcParams[axes.unicode_minus]=False
print(counts.type)
print(counts.num)
#plt.style.use(‘mystyle‘)
x=np.arange(counts.type.size)
plt.bar(x,counts.num,color=red)
ax=plt.gca()
ax.set_xticklabels(counts.type)
plt.show()

画图的代码为:

import matplotlib.pyplot as plt
plt.rcParams[font.sans-serif]=[SimHei]
plt.rcParams[axes.unicode_minus]=False
print(counts.type)
print(counts.num)
#plt.style.use(‘mystyle‘)
x=np.arange(counts.type.size)
plt.bar(x,counts.num,color=red)
ax=plt.gca()
ax.set_xticklabels(counts.type)
plt.show()
使用plt.bar()去画图
首先是数据是dataframe格式的。
也就是两个变量,即两列
例如:
type num
0 优秀作品 11120
1 创新与合作 823
2 教学资源 24914
3 新闻动态 3177
4 竞赛与评奖 14114
5 竞赛组织 9645
6 视频教学 98
7 项目与招聘 4734
接下来:使用bar()绘制图形:
由于plot只接受数值类型,所以我们首先要:
输入:x = np.arange(data.category.size)
就是转换为其有多少个数据
画出来的图为:
技术分享
接下来要设置x轴标识为类别:
ax=plt.gca()
ax.set_xticklabels(counts.type)

 

然后画出来的图为:
技术分享
注意:
技术分享

 

技术分享
红色部分不能定义为index,否则输不出来,因为其默认就是有index
或者对于使用D.plot()的方式的话,就是可以这样子:
counts.plot(kind=bar,color=red)
ax=plt.gca()
ax.set_xticklabels(counts.type)
plt.show()

 

技术分享
技术分享

统计类别数量并且使用pyplot画出柱状图

标签:

原文地址:http://www.cnblogs.com/caicaihong/p/5887845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!