先记录小技巧:

pycharm中,鼠标点在一个方法上,ctrl+b,即转到该方法的源码,以找到使用方法。

概念及环境

使用意义

:从一堆数据中找到或总结出需要的信息,帮助判断和决策

与web、爬虫、机器学习相结合

基本流程

:提出问题->准备数据->分析数据->获得结论->成果可视化等其他操作

一般使用环境

:conda(容易解决各种安装问题)

matplolib

重要的事情讲在前面

matplotlib用于绘图,可绘制的图形在

matplotlib官网

上进行查阅获取代码,更改变量即可。

打不开的话就用这个

matplolib中文文档

以下笔记均以绘制折线图、散点图、条形图和直方图为例。

matplolib基本介绍

matplolib可以将数据可视化,直接用python执行,名字取材于matlab。

折线图基本要点

(

axis轴

:坐标轴)

使用一般方法:

以折线图为例:

from matplotlib import pyplot as plt#模块导入

x = X#传递自变量

y = Y#传递应变量

plt.plot(x,y)#导入变量,并通过plot绘制折线图(不展示)

plt.show()#展示图形

此时显示的时一段折线图。

但是matplolib还有更多的设置,如

设置图片大小

fig= plt.figure(figsize = (a, b), dpi = 80)`#a、b表示宽和高

保存到本地

plt.savefig('./name.svg')#./代表再当前路径下的文件,可以更改。使用.svg格式是矢量图格式,避免模糊。

描述图像信息

添加描述信息

plt.xlabel('xlabel')

plt.ylabel('ylabel')

plt.title('title')

调整刻度:(以x轴为例,y轴即把xtick改为ytick)

此处注意:更改刻度的疏密可用此处代码表示:

_x = list(x)[shart, stop, step]

#把x转化为列表,方便用[ ::]截取片段

调整图表:

绘制网格:在图像绘制后,加入代码

plt.grid()

在调整x轴和y轴刻度时会直接调整网格。一般可以传入如alpha(透明度)等参数。

添加一条新的曲线:

直接再加入一条:

plt.plot(x, y)

添加图例

plt.plot(x, y,label='label')

plt.legend(prop='my_font')

#除了legend更改字体使用prop以外,更改字体均使用fontproperties

以下两点待补充

标记特殊点

添加水印

折线图的小案例

假设要记录cathy和sarah两人11岁至30岁的旅行经历

from matplotlib import pyplot as plt

from matplotlib import font_manager

#my_font = font_manager.FontProperties('C:/Users/MI/AppData/Local/Microsoft/Windows/Fonts/BUSTER Regular.ttf')

my_font = font_manager.FontProperties(fname='C:/Users/MI/AppData/Local/Microsoft/Windows/Fonts/DuntonWriting.ttf')

x = range(11,31)

y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]

y2 = [2, 0, 3, 5, 3, 2, 2, 1, 1, 1, 1, 3, 2, 5, 6, 3, 1, 2, 3, 0]

fig = plt.figure(figsize=(20,8),dpi=80)

xtick = []

for i in x:

xtick += f'{i}'

plt.xticks(x, xtick,fontproperties=my_font)

plt.xlabel('age= ',fontproperties=my_font)

plt.ylabel('annual travel-times', fontproperties=my_font)

plt.title('travel-times between the age of 11 and 30',fontproperties=my_font)

plt.plot(x, y, color='cyan', label='Sarah',linewidth=3)#颜色可搜索颜色代码(十六进制)

plt.plot(x, y2, color='orange', label='Cathy')

plt.grid(alpha=0.5)

plt.legend(prop=my_font,loc=0)

plt.savefig('./test3.png')

plt.show()

结果:

散点图基本要点

基本同上,使用plt.scatter进行绘图,直接上案例:

北京3月和10月的气温散点图

from matplotlib import pyplot as plt

from matplotlib import font_manager

my_font = font_manager.FontProperties(fname='C:/Users/MI/AppData/Local/Microsoft/Windows/Fonts/C288-蔡云汉隶书书法字体.TTF')

x1 = range(1, 32)

#排版漂亮,两个图要分离开

x2 = range(51,82)

_x = list(x1) + list(x2)

plt.figure(figsize=(20, 8), dpi=80)

x_tick = []

for i in x1:

x_tick += [f'March :day {i}']

for i in x2:

x_tick += [f'October :day {i-50}']

plt.xticks(_x[::3], x_tick[::3], rotation=45, fontproperties=my_font)

plt.xlabel(f'temperature in March', fontproperties=my_font)

plt.ylabel(f'temperature in October', fontproperties=my_font)

plt.title(f'Temperature of two months in Beijing')

y1 = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 18, 21, 16, 17, 20, 14, 15, 15, 15, 19, 21, 22, 22, 22, 23]

y2 = [26, 26, 28, 19, 21, 16, 16, 19, 18, 20,19,20, 21, 22, 13, 5, 13, 17, 10, 11, 17, 13, 13, 24, 12, 11, 13, 12, 13, 5, 6]

plt.scatter(x1, y1, label='March', color='blue')

plt.scatter(x2, y2, label='October',color='orange')

plt.legend(prop=my_font, loc=0)

plt.savefig('temp1.png')

plt.show()

条形图重点

(一般用于数据对比、数量/频率统计等)

2017年票房数据(因为字体这边有点问题,用f(n)表示电影名)

from matplotlib import pyplot as plt

from matplotlib import font_manager

plt.figure(figsize=(15,8),dpi=80)

my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/simhei.ttf')

x=[]

#x = ['f1','速度与激情','功夫瑜伽',"西游降魔篇",'变形金刚5','摔跤吧爸爸','加勒比海盗','金刚','极限特工','生化危机','乘风破浪','生化危机','智取威虎山','大闹天竺','金刚狼','蜘蛛侠','悟空传','银河护卫队','轻声','木乃伊']

for i in range(1,21):

x += [f'f{i}']

y = [56,27,17,16,15,13,11,11,11,11,10,10,8,7,7,7,6,6,6,6]

plt.ylabel(f'booking office')

plt.xlabel('film name')

plt.title('films\' bookong office in 2017')

plt.bar(x, y, color='#BA55D3',width=0.3)

plt.savefig('temp2.png')

plt.show()

但条形图中,通常还会有两种需求:横向条形图、多次条形图,以下给出解决方法及案例

横向条形图:

plt.barh(x,y)

但此时若写

plt.barh(x,y,width=3)

代码会出错,核查源码后发现barh()的参数如下:

barh(y, width, height=0.8, left=None, *, align=‘center’, **kwargs)

简单更改后结果如下:

多次条形图的重点在于紧邻的几条数据。

以三天中4部电影的票房对比为例:

from matplotlib import pyplot as plt

from matplotlib import font_manager

my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/simhei.ttf')

_x = ['film1','film2','film3','film4']

#输入4部电影每天的票房

y3=[15746,312,4496,329]

y2=[12357,156,2045,168]

y1=[3458,399,2358,362]

#设置width时候保证其数值小于1/n(n为图中每一大块含有的条形图的数量)

#此处n表现为天数

#否则条形图们就会紧紧挤在一起

bar_width = 0.2

#通过使向右移动一个width的长度,设置紧贴的3列数据

x1 = list(range(len(_x)))

x2 = [i+bar_width for i in x1]

x3 = [j+bar_width for j in x2]

plt.bar(range(len(_x)),y1,width=bar_width,label='day1')

plt.bar(x2,y2,width=bar_width, label='day2')

plt.bar(x3,y3,width=bar_width, label='day3')

plt.xticks(x2,['film1','film2','film3','film4'])

plt.legend(loc=0)

plt.title('booking office of 4 films in 3 days')

plt.ylabel('booking office')

plt.xlabel('films')

plt.savefig('temp4.png')

plt.show()

输出结果:

直方图重点

直方图调用的函数是:

plt.hist(_list, num_bins)

_list代表需要统计的数据

num_bins代表组数(分组数量)

分组方面,一般规定数据在100以内时分5~12组

大于100时,n = 极差/组距,组距即每个小组的间隔

数据差距越大,组距应相应扩大

若组距不确定,可设置bins = list,传入一个数组。

若要改为频率直方图,输入以下代码:

plt.hist(_list,nub_bins,nomed=True)

案例:统计250部电影时长的分布情况

此处案例中由于y是随机产生的,因此不能保证(max(y)-min(y))//d是整数,因此数据条和网格不能重合,现实数据可以避免这个问题。

import random as rd

from matplotlib import pyplot as plt

#设置图形大小

plt.figure(figsize=(20,8),dpi=80)

#假设电影时长

y = []

for i in range(250):

y.append(rd.randint(100,200))

#绘制直方图

d=5#组距

num = max(y)//d

plt.hist(y, num)

#设置x轴刻度

#注意添加步长(组距)

_x = [f'{i}min' for i in range(min(y), max(y)+d, d)]

plt.xticks(range(min(y), max(y)+d, d),_x, rotation=45)

#添加描述信息

plt.xlabel("the lenth of movies")

plt.ylabel('the number of movies')

plt.title('movie-numbers of different lenth')

plt.grid()

plt.show()

plt.savefig('temp5.png')

注意:如果给出的数据是已经统计好的数据,则直接使用条形图来制作直方图,设置width=1(消除条形图之间的空隙),根据情况修改xticks即可。

python三维图形注释_Python数据分析注释matplolib绘图注释和示例,笔记,及相关推荐

  1. opengl三维图形绘制_Python matplotlib绘图示例 - 绘制三维图形

    Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...

  2. python pd Series 添加行_Python数据分析与挖掘的常用工具

    Python语言:简要概括一下Python语言在数据分析.挖掘场景中常用特性: 列表(可以被修改),元组(不可以被修改) 字典(结构) 集合(同数学概念上的集合) 函数式编程(主要由lambda(). ...

  3. python 三维图直方图_Python | 阶梯直方图

    python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...

  4. python 条形图填充疏密_Python数据分析 4:图表绘制工具Matplotlib

    一.Matplotlib简介及图表窗口 Matplotlib是一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,其特点为运营高效且具有丰富的 ...

  5. python文件去重软件_Python实现的txt文件去重功能示例

    本文实例讲述了Python实现的txt文件去重功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 import shutil a=0 readD ...

  6. python保留字分支结构_Python基础语法----缩进、注释、命名与保留字、数据类型、分支语句、函数...

    缩进 -严格明确:缩进是语法的一部分,缩进不正确程序运行错误 -所属关系:表达代码间包含和层次关系的唯一手段 -长度一致:程序内一致即可,一般用4个空格或1个TAB 注释 -用于提高代码可读性的辅助性 ...

  7. plt title设置在下方_Python数据分析:可视化图表注释设置

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 前言 如果我们想要在图形中的任意位置添加注释,该如何用pyhton代码实现操作呢 ...

  8. python中如何快速注释_python中如何快捷添加注释

    本人使用的编辑器是pycharm,有三种注释方式: 1.用 一对""" 括起来要注释的代码块. 2.用一对'''括起来要注释的代码块. 3.选中要注释的代码,按下ctrl ...

  9. python三引号注释_python使用三引号来注释的具体原因?

    Why didn't python just use the traditional style of comments like C/C++/Java uses: /** * Comment lin ...

最新文章

  1. 年季度月周日控件html,基于bootstrap按年、季度、年月、年月日的日历插件(原创)...
  2. nginx各个版本下载地址
  3. Java计算器接口策略_Java 基础 接口 ——运算
  4. php遍历删除目录下文件,PHP遍历删除文件夹已经文件内的所有文件
  5. ubuntu14.04中卸载cuda、cudnn
  6. 《Android游戏开发详解》——导读
  7. 数据库实现中文汉字排序终极指南
  8. 分布式系统概念与设计——阅读笔记(一)
  9. 深度森林实现时间序列预测(Python)
  10. java程序 打包_Java程序打包方法最强集合
  11. Word 公式编辑器: 公式居中,编号居右,带章节号自动更新,且可以交叉引用
  12. 信捷PLC 批量传送位 MOV DMOV QMOV
  13. 码距与检错或纠错能力的关系
  14. Android问题集锦(六)- adb不是内部或外部命令解决方法
  15. 如何将WPS转换成office,WPS转office的转换方法
  16. 【MindSpore】 No module named apos;mindspore.dataset.transformsapos;
  17. 第六章 Caché 变量大全 $HOROLOG 变量
  18. ToG产品_产品运营方案框架_2019_002
  19. Docker使用入门
  20. KVM虚拟化技术及环境配置

热门文章

  1. 视频号运营,个人如何才能把视频号做起来:国仁楠哥
  2. Kindle推送教程:推送Kindle 电子书详细步骤
  3. 对话情绪识别 API数据接口
  4. GTA圣安地列斯最全攻略
  5. 反斜杠转正斜杠 bat
  6. 如何解决Office365无法登录
  7. Grizzly 内存管理
  8. 7-python库之-pyautogui鼠标键盘控制、图片位置查找
  9. 51nod图论题解(4级,5级算法题)
  10. 干货 l 如何为Mist建立无服务器应用