python中matplotlib绘图封装类之折线图、条状图、圆饼图
DrawHelper.py封装类源码:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np class DrawHelper:
def __init__(self):
# 指定默认字体 下面三条代码用来解决绘图中出现的乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family'] = 'sans-serif'
# 解决负号'-'显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False # 绘制饼状图清除type值为零,同时设置颜色(相同的类型相同的颜色)
def clear_zeroData(self, keys, values):
colors = ['yellow', 'green', 'red', 'blue', 'black', 'purple', 'pink', 'brown', 'grey', 'yellow', 'green', 'red', 'blue', 'black', 'purple', 'pink', 'brown', 'grey', 'yellow', 'green', 'red', 'blue', 'black', 'purple', 'pink', 'brown', 'grey']
keys_list = []
values_list = []
colors_list = []
for i in range(0, len(keys)):
if values[i] != 0:
keys_list.append(keys[i])
values_list.append(values[i])
colors_list.append(colors[i])
return (keys_list,values_list,colors_list) # 绘制折线图
def get_plot(self, key_list, value_list, actor):
index = np.arange(len(key_list))
# 设置画板大小
plt.figure(figsize=(9,9))
# 设置条状图标题
plt.title(actor+'电影类型分布折线图')
plt.xticks(index, key_list)
plt.grid(True)
plt.plot(index,value_list)
# 保存成图片
plt.savefig('images/plot/' + actor + '.png')
plt.close() # 绘制条状图
def get_bar(self, key_list, value_list, actor):
index = np.arange(len(key_list))
# 设置画板大小
plt.figure(figsize=(9,9))
# 设置条状图标题
plt.title(actor + '电影类型分布直方图')
plt.bar(index, value_list, 0.5)
plt.xticks(index, key_list)
plt.grid(True)
plt.savefig('images/bar/' + actor + '.png')
# 关闭图
plt.close() # 绘制饼状图
def get_pie(self, key_list, value_list, actor):
# 调用绘制饼状图清除type值为零,同时设置颜色函数
types_no_zero = self.clear_zeroData(key_list,value_list)
keys = types_no_zero[0]
values = types_no_zero[1]
colors = types_no_zero[2]
# 设置标题
plt.title(actor + '电影类型分布饼状图')
plt.pie(values, labels=keys, colors=colors,shadow=True, autopct='%1.1f%%')
plt.axis('equal')
plt.savefig('images/pie/' + actor + '.png')
# 关闭图
plt.close()
test.py测试:
from DrawHelper import DrawHelper types = (['剧情', '喜剧', '爱情', '动作', '犯罪', '武侠', '悬疑', '古装', '科幻', '惊悚', '奇幻', '恐怖', '鬼怪', '冒险', '家庭', '运动', '西部', '传记', '歌舞', '历史', '同性'], [11, 2, 3, 8, 10, 0, 2, 0, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0])
keys = types[0]
values = types[1]
actor = '刘德华'
DrawHelper().get_bar(keys,values,actor)
DrawHelper().get_pie(keys,values,actor)
DrawHelper().get_plot(keys,values,actor)
print("OK")
截图:



python中matplotlib绘图封装类之折线图、条状图、圆饼图的更多相关文章
- python 中matplotlib 绘图
python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...
- HighCharts之2D堆条状图
HighCharts之2D堆条状图 1.HighCharts之2D堆条状图源码 StackedBar.html: <!DOCTYPE html> <html> <head ...
- HighCharts之2D条状图
HighCharts之2D条状图 1.HighCharts之2D条状图源码 bar.html: <!DOCTYPE html> <html> <head> < ...
- Excel 2010高级应用-条状图(五)
Excel 2010高级应用-条状图(五) 基本操作如下: 1.新建一个Excel空白文档,并命名条状图 2.单击"插入",找到条状图的样图 3.选择其中一种类型的条状图样图,在空 ...
- Flex实现双轴条状图
1.问题背景 一般的,柱状图可以实现双轴图,但是如何实现双轴条状图? 2.实现实例 <?xml version="1.0" encoding="utf-8" ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- python之matplotlib绘图基础
Python之matplotlib基础 matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.ht ...
- swift app中展示折线图, 饼状图, 柱状图等数据图表
github 下载Charts-master SDK,该SDK有多种可自定义的图表样式 lineChart 正弦余弦线图 LineChart (cubic lines) LineChart (grad ...
- canvas制作柱形图/折线图/饼状图,Konva写动态饼状图
制作饼状图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
随机推荐
- 设备管理器里“SM总线控制器”、“其它PCI桥设备”驱动有问题
WinXP重装系统后设备管理器里面出现黄色问号.各自是"SM总线控制器"和"其它PCI桥设备",主板是七彩虹的,芯片组是 geForce 7025的,南桥是 n ...
- 分布式协调服务ZooKeeper工作原理
分布式协调服务ZooKeeper工作原理 原创 2016-02-19 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 大数据处理框架Hadoop.R ...
- laravel配置文件(自定义配置文件)
laravel配置文件存放目录config里面的文件是自定加载的,也就是说,你在文件夹里面新建一个custom.php,按配置格式写,是可以正常访问的. 1.读取配置的方法: $value = con ...
- MEF教程
http://www.cnblogs.com/content/archive/2013/05/31/3111156.html
- 爱国者布局智能硬件,空探系列PM2.5检測仪“嗅霾狗”大曝光
随着6月1日史上最严禁烟令的正式实施,国内包含北京.上海.成都等大中型城市已经在公共场所全面禁烟.众所周知,实施禁烟令的根本在于促进空气的净化,实现环境的改善,要达到这个目的,光有禁烟令是远远 ...
- Android ART介绍
1.ART之所以会比Dalvik快,是由于ART运行的是本地机器指令,而Dalvik运行的是Dex字节码.通过通过解释器运行. 虽然Dalvik也会对频繁运行的代码进行JIT生成本地机器指令来运行,但 ...
- Window 窗口类
窗口类 WNDCLASS 总结 总结为下面的几个问题: . 什么是窗口类 . 窗口类的三种类型 . 窗口类各字段含义 . 窗口类的注册和注销 . 如何使用窗口类,子类化.超类化是什么 下面分别描述: ...
- ajax发送请求时为url添加参数(使用函数)
<script> // ajax的get请求,使用函数向其url添加参数 function addURLParam(url,name,value){ url+=(url.indexOf(' ...
- 基于Java Mina框架的部标jt808服务器设计和开发
在开发部标GPS平台中,部标jt808GPS服务器是系统的核心关键,决定了部标平台的稳定性和行那个.Linux服务器是首选,为了跨平台,开发语言选择Java自不待言.需要购买jt808GPS服务器源码 ...
- js计数器
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...