数据分析——matplotlib
基础
# coding=utf-8
import matplotlib.pyplot as pt
import numpy as np
from matplotlib import font_manager # 字体管理 # pt.figure(num='ljb',facecolor='y',figsize=(8,6)) #num画框名,facecolor画框颜色,figsize画框大小(宽,高)
# pt.subplot(1,2,1) #子画框,1行1列1号位置
# X = np.linspace(-np.pi,np.pi,100)
# Y = np.sin(X)
# B = np.cos(X)
# pt.plot(X,Y,c='b',lw=4,ls='--') #c图形颜色,lw图形粗细,ls图形样式
# pt.subplot(1,2,2)
# pt.plot(X,B,c='g',lw=4,ls='--')
# pt.savefig('./sinx.png') #保存图形 # pt.figure(num='haha',facecolor='g')
# X = np.linspace(0,np.pi,100)
# Y = np.cos(X)/np.sin(X)
# Y = np.sin(X)/np.cos(X)
# pt.plot(X,Y,'b+') # 行,列,位置
# 画哪个就把哪个作为主体
# pt.figure(facecolor='r')
# X = np.linspace(-100, 100, 20)
# Y = X ** 2
# pt.xlabel(u'X数值') #X轴名字
# pt.ylabel(u'Y数值') #Y轴名字
# pt.subplot(3,1,1,facecolor='y') #子图形颜色
# pt.plot(X,Y,'bo') #b蓝色blue ,形状:o圆点
#
# A = np.linspace(-np.pi,np.pi,10)
# B = np.sin(A)
# C = np.cos(A)
# pt.subplot(3,3,4)
# pt.plot(A,B,'g+') #g绿色green,形状:+
# pt.subplot(3,3,5)
# pt.plot(A,C,'r*') #r红色red,形状:*
#
# M = np.linspace(2, 10, 20)
# N = np.log(M)
# pt.subplot(3,3,6,facecolor='g')
# pt.plot(M,N,'md') #m紫色,形状d:钻石
#
# a = np.linspace(-100, 100, 20)
# b = a ** 2
# pt.subplot(3,2,5,facecolor='m')
# pt.plot(a,b,'bo')
# x = np.linspace(-100, 100, 20)
# y = x ** 2
# pt.subplot(3,2,6,facecolor='y')
# pt.plot(x,y,'b>')
# pt.show()
# subplot(3,2,6)可以简写为subplot(326) pt.figure()
# pt.rcParams['font.sans-serif'] = ['字体名']
myfont = font_manager.FontProperties(fname=u'C:\Windows\Fonts\时尚中黑简体.ttf')
X = np.linspace(-np.pi, np.pi, 50)
Y = X ** 2
Y1 = X ** 3
Y2 = np.sin(X)
# 设置xy轴上下限
pt.xlim(-np.pi, np.pi)
pt.ylim(-1, 1)
# 设置x轴每个显示刻度
pt.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi])
# 设置某点坐标的文字:x坐标,y坐标以数据刻度为基准,显示的内容,字体配置
pt.text(0.0, 0.5, 'ljb', fontdict={'size': '', 'color': 'm'})
# 添加标注:xy:标注箭头想要指示的点,xytext:描述信息所在的坐标,arrowprops:设置箭头样式,shrink:箭头长度
pt.annotate('note!', xy=(np.pi / 2, 1), xytext=(np.pi / 2, 0.25), fontsize=16,
arrowprops=dict(facecolor='y', shrink=0.01)) pt.xlabel(u'X数值', fontproperties=myfont, fontsize=12) # X轴名字及字体设置
pt.ylabel(u'Y数值', fontproperties=myfont, fontsize=12) # Y轴名字及字体设置
pt.title(u'函数图像', fontproperties=myfont, fontsize=16) # 图形标题及字体设置
# pt.plot(X,Y,label=u'X2函数')
# pt.plot(X,Y1,label=u'X3函数')
pt.plot(X, Y2, 'bo', label=u'sinx函数') # label设置图例
pt.legend(prop=myfont) # 显示图例并设置字体
pt.show()
柱状图
# coding=utf-8
import numpy as np
import matplotlib.pyplot as pt # 柱状图--------------------------------------
k = 10
x = np.arange(k) #生成序列数组
y = np.random.rand(k) #生成对应的随机数
for t in x: #text设置某点坐标的文字,ha,va设置文字位置,
pt.text(t,y[t]+0.01,'%.2f' % y[t],ha='center',va='bottom',fontdict={'size':'','color':'r'})
pt.annotate('%.2f' % y[4],xy=(4,y[4]+0.05),xytext=(4.3,y[4]+0.15),fontsize=16,arrowprops=dict(facecolor='y',arrowstyle='fancy'),bbox = dict(boxstyle="sawtooth",fc="0.8"))
pt.bar(x,y)
# pt.barh(x,y) #横向柱状图
pt.show() # 子图配置-----------------------------------------
# pt.figure(figsize=(10, 6))
# X = np.linspace(-np.pi, np.pi, 30)
# Y_sin = np.sin(X)
# Y_cos = np.cos(X)
#
# # 获取子图的配置
# ax_sin = pt.subplot(121) #需要把子图存起来
# ax_sin.set_title('Sin(X)') #单独设置某个子图标题
# ax_sin.set_xlabel('X') #单独设置某个子图x轴名字
# ax_sin.set_ylabel('Y') #单独设置某个子图y轴名字
# pt.plot(Y_sin, 'bo')
#
# ax_cos = pt.subplot(122)
# ax_cos.set_title('Cos(X)')
# ax_cos.set_xlabel('X')
# ax_cos.set_ylabel('Y')
# pt.plot(Y_cos, 'r-')
#
# pt.show() # 分类柱状图-----------------------------------------------
# from matplotlib import font_manager
#
# myfont = font_manager.FontProperties(fname=u'C:\Windows\Fonts\时尚中黑简体.ttf')
#
# b_16 = [15746, 312, 4497, 319]
# b_15 = [12357, 156, 2045, 168]
# b_14 = [2358, 399, 2358, 362]
# a = [u'猩球崛起3', u'敦刻尔克', u'蜘蛛侠', u'战狼2']
#
# bar_width = 0.2 #设置一个条状图的宽度
#
# x_14 = list(range(len(a)))
# x_15 = [i + bar_width for i in x_14]
# x_16 = [i + bar_width * 2 for i in x_14]
#
# # 设置图形大小,分辨率
# pt.figure(figsize=(12, 6), dpi=80)
#
# ax = pt.subplot(211)
#
# ax.set_title('Counter')
# ax.set_xlabel('X')
#参数1:位置列表,参数2:数据列表,参数3:柱宽,参数4:图例
# pt.bar(range(len(a)), b_14, width=bar_width, label=u'9月14日')
# pt.bar(x_15, b_15, width=bar_width, label=u'9月15日')
# pt.bar(x_16, b_16, width=bar_width, label=u'9月16日')
#
# # 设置图例
# pt.legend(prop=myfont)
#
# # 设置x轴的刻度
# pt.xticks(x_15, a, fontproperties=myfont)
# pt.show()
小案例
学生成绩
导入类库
from matplotlib import font_manager
import numpy as np
import matplotlib.pyplot as pt
数据准备
score_array = np.genfromtxt('score.csv', delimiter=',', dtype=int)
courses = [u'数学', u'语文', u'化学', u'地理', u'音乐', u'体育']
students = [u'小数', u'小语', u'小化', u'小地', u'小音', u'小体']
myfont = font_manager.FontProperties(fname=u'C:\Windows\Fonts\时尚中黑简体.ttf')
数据提取
student_0 = score_array[:,0]
student_1 = score_array[:,1]
student_2 = score_array[:,2]
student_3 = score_array[:,3]
student_4 = score_array[:,4]
student_5 = score_array[:,5] bar_width = 0.1
x_0 = list(range(len(students)))
x_1 = [i + bar_width for i in x_0]
x_2 = [i + bar_width * 2 for i in x_0]
x_3 = [i + bar_width * 3 for i in x_0]
x_4 = [i + bar_width * 4 for i in x_0]
x_5 = [i + bar_width * 5 for i in x_0]
作图
pt.figure(figsize=(12, 5),dpi=80)
ax = pt.subplot(111) ax.set_title('Score')
ax.set_xlabel('Students')
ax.set_ylabel('y') pt.bar(range(len(students)), student_0, width=bar_width, label=courses[0])
pt.bar(x_1, student_1, width=bar_width, label=courses[1])
pt.bar(x_2, student_2, width=bar_width, label=courses[2])
pt.bar(x_3, student_3, width=bar_width, label=courses[3])
pt.bar(x_4, student_4, width=bar_width, label=courses[4])
pt.bar(x_5, student_5, width=bar_width, label=courses[5]) pt.legend(prop=myfont)
pt.xticks([i + bar_width * 2.5 for i in x_0], students, fontproperties=myfont)
pt.show()
数据分析——matplotlib的更多相关文章
- python 数据分析 Matplotlib常用图表
Matplotlib绘图一般用于数据可视化 常用的图表有: 折线图 散点图/气泡图 条形图/柱状图 饼图 直方图 箱线图 热力图 需要学习的不只是如何绘图,更要知道什么样的数据用什么图表展示效果最好 ...
- Python数据分析-Matplotlib图标绘制
Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...
- 博学谷-数据分析matplotlib
博学谷-数据分析 python数学学科的基础 机器学习课程的基础 1.1 介绍 1.2 jupyter和conda 1.3 matplotlib from matplotlib import pypl ...
- 数据分析 - Matplotlib
简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值.必要的一些数据转换等.完成数据分析 ...
- 数据分析——matplotlib的用法
Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值.必要的一些数据转换等.完成数据分析的最终 ...
- 数据分析-Matplotlib:绘图和可视化
学习路线 简介 简单绘制线形图 plot函数 支持图类型 保存图表 1.简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮 ...
- Python数据分析matplotlib可视化之绘图
Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...
- 数据分析——Matplotlib图形绘制
创建画布或子图 函数名称 函数作用 plt.figure 创建一个空白画布,可以指定画布大小,像素. figure.add_subplot 创建并选中子图,可以指定子图的行数,列数,与选中图片编号. ...
- python 数据分析----matplotlib
Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt ...
随机推荐
- js分享功能(微信,QQ,微博,空间,豆瓣等)
日常编程中,我们可能会碰到项目中的分享功能,各大平台都有分享接口和文档说明,当然也有一些一键分享插件,例如:sosh,iShare.js等等 但有些同学不想引用插件,那么我整理了一些常用的分享至平台功 ...
- poj2689 Prime Distance题解报告
题目戳这里 [题目大意] 给定一个区间[L,R],求区间内的质数相邻两个距离最大和最小的. [思路分析] 其实很简单呀,很明显可以看出来是数论题,有关于质数的知识. 要注意一下的就是L和R的数据范围都 ...
- JavaScript实现轮播图效果
我又来了,同志们.老想你们了 捕获小可爱一枚. 下面进入正题:用JavaScript原生代码写轮播图效果. 具体效果就不多说了,网站上面的轮播效果我们都知晓.下面是展示代码 html代码: <d ...
- input 上报流程图
input 上报流程图 http://blog.chinaunix.net/uid-28320320-id-3389196.html
- java学习笔记05-运算符
算数运算符 +:相加 -:相减 *:相乘 /:相除 %:取余 ++:自增 --:自减 public static void main(String[] args) { int i = 10; int ...
- SQLAlchemy+Flask-RESTful使用(一)
前言 开新坑啦.最近打算自己开一个资源聚合网站.就用Flask. 当然也使用了 Flask-RESTful和SQLAlchemy啦 写的过程中遇到过很多坑/觉得比较有意义的就写在这里. 变更记录 # ...
- 详解MariaDB数据库的存储过程
1.什么是存储过程 很多时候,SQL语句都是针对一个或多个表的单条语句.但是也有时候有的查询语句需要进行多次联表查询才能完成,此时就需要用到存储过程了. 存储过程(Stored Procedure)是 ...
- flutter 登录后跳转到根路由
flutter 登录以后 会有返回箭头显示 因为 路由的切换导致不是路由的第一个页面,解决办法清空路由. Navigator.of(context).pushAndRemoveUntil( new ...
- Django组件-Forms组件
Django的Forms组件主要有以下几大功能: 页面初始化,生成HTML标签 校验用户数据(显示错误信息) HTML Form提交保留上次提交数据 一.小试牛刀 1.定义Form类 from dja ...
- Redis在Linux中安装使用
一.安装$ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd re ...