基础

 # 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的更多相关文章

  1. python 数据分析 Matplotlib常用图表

    Matplotlib绘图一般用于数据可视化 常用的图表有: 折线图 散点图/气泡图 条形图/柱状图 饼图 直方图 箱线图 热力图 需要学习的不只是如何绘图,更要知道什么样的数据用什么图表展示效果最好 ...

  2. Python数据分析-Matplotlib图标绘制

    Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...

  3. 博学谷-数据分析matplotlib

    博学谷-数据分析 python数学学科的基础 机器学习课程的基础 1.1 介绍 1.2 jupyter和conda 1.3 matplotlib from matplotlib import pypl ...

  4. 数据分析 - Matplotlib

    简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值.必要的一些数据转换等.完成数据分析 ...

  5. 数据分析——matplotlib的用法

    Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值.必要的一些数据转换等.完成数据分析的最终 ...

  6. 数据分析-Matplotlib:绘图和可视化

    学习路线 简介 简单绘制线形图 plot函数 支持图类型 保存图表 1.简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮 ...

  7. Python数据分析matplotlib可视化之绘图

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  8. 数据分析——Matplotlib图形绘制

    创建画布或子图 函数名称 函数作用 plt.figure 创建一个空白画布,可以指定画布大小,像素. figure.add_subplot 创建并选中子图,可以指定子图的行数,列数,与选中图片编号. ...

  9. python 数据分析----matplotlib

    Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt ...

随机推荐

  1. 《B2C商城》电商平台搭建流程分析

    商城网站建设在当今互联网时代中是非常重要的.商城网站,是企业产品展示.品牌宣传与消费者互动交流的一个平台,利用好这样的一个平台,就能占得先机.那么问题来了,商城网站如何建设呢?这对于企业来说真的是一个 ...

  2. Dynamic Rankings

    板子题 用的整体二分 唯一要注意的是别总手误打错变量 最近总犯这样sb错误,我佛了 #include<bits/stdc++.h> using namespace std; const i ...

  3. 20164305 徐广皓 Exp2 后门原理与实践

    实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter(或其他软件)生成可执行文件, ...

  4. Eclipse 开发设置编码格式--4个修改地方完美

    背景:本人用这么久,因为大部分都是设定为UTF-8 就可以了,但是一些老项目居然是GBK格式,所以 工作空间.通常文件类型的编码都是UTF-8. 针对特殊项目设定特定格式,实际中本人对整个项目设定并不 ...

  5. patch 28729262

    打补丁最后出个error OPatch found the word "error" in the stderr of the make command.Please look a ...

  6. pycharm安装package时报错

    在pycharm pip 包时,提示报错:module 'pip' has no attribute 'main' 原因:由于我的是pip 18.1 版本里没有main() 解决方法: 如不降级 pi ...

  7. String,下表和切片,分割

    字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...

  8. Mac 小功能

    Safari  安装扩展    https://safari-extensions.apple.com/?category=translation 关闭第三方验证  有时候打开自己下载的安装包会提示 ...

  9. JS一直是单线程,异步(定时器,ajax请求等)是由浏览器来实现的!(转)

    原文地址:https://www.cnblogs.com/woodyblog/p/6061671.html 1.自己画的一张示意图 2.DOM一变化,界面就立刻重新渲染,效率必然很低,所以浏览器的机制 ...

  10. 基于Vue2.x的小米商城移动端项目

    初学vue已经有一段时间,为了检验自己的学习成果,决定做一个项目作为一个阶段性总结,项目花了差不多半个月时间,目前实现了7个页面,商城的主要功能基本实现,代码已经放到github上面. 这个项目把大部 ...