python三维图形注释_Python数据分析注释matplolib绘图注释和示例,笔记,及
先记录小技巧:
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绘图注释和示例,笔记,及相关推荐
- opengl三维图形绘制_Python matplotlib绘图示例 - 绘制三维图形
Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...
- python pd Series 添加行_Python数据分析与挖掘的常用工具
Python语言:简要概括一下Python语言在数据分析.挖掘场景中常用特性: 列表(可以被修改),元组(不可以被修改) 字典(结构) 集合(同数学概念上的集合) 函数式编程(主要由lambda(). ...
- python 三维图直方图_Python | 阶梯直方图
python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...
- python 条形图填充疏密_Python数据分析 4:图表绘制工具Matplotlib
一.Matplotlib简介及图表窗口 Matplotlib是一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,其特点为运营高效且具有丰富的 ...
- python文件去重软件_Python实现的txt文件去重功能示例
本文实例讲述了Python实现的txt文件去重功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 import shutil a=0 readD ...
- python保留字分支结构_Python基础语法----缩进、注释、命名与保留字、数据类型、分支语句、函数...
缩进 -严格明确:缩进是语法的一部分,缩进不正确程序运行错误 -所属关系:表达代码间包含和层次关系的唯一手段 -长度一致:程序内一致即可,一般用4个空格或1个TAB 注释 -用于提高代码可读性的辅助性 ...
- plt title设置在下方_Python数据分析:可视化图表注释设置
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 前言 如果我们想要在图形中的任意位置添加注释,该如何用pyhton代码实现操作呢 ...
- python中如何快速注释_python中如何快捷添加注释
本人使用的编辑器是pycharm,有三种注释方式: 1.用 一对""" 括起来要注释的代码块. 2.用一对'''括起来要注释的代码块. 3.选中要注释的代码,按下ctrl ...
- python三引号注释_python使用三引号来注释的具体原因?
Why didn't python just use the traditional style of comments like C/C++/Java uses: /** * Comment lin ...
最新文章
- 年季度月周日控件html,基于bootstrap按年、季度、年月、年月日的日历插件(原创)...
- nginx各个版本下载地址
- Java计算器接口策略_Java 基础 接口 ——运算
- php遍历删除目录下文件,PHP遍历删除文件夹已经文件内的所有文件
- ubuntu14.04中卸载cuda、cudnn
- 《Android游戏开发详解》——导读
- 数据库实现中文汉字排序终极指南
- 分布式系统概念与设计——阅读笔记(一)
- 深度森林实现时间序列预测(Python)
- java程序 打包_Java程序打包方法最强集合
- Word 公式编辑器: 公式居中,编号居右,带章节号自动更新,且可以交叉引用
- 信捷PLC 批量传送位 MOV DMOV QMOV
- 码距与检错或纠错能力的关系
- Android问题集锦(六)- adb不是内部或外部命令解决方法
- 如何将WPS转换成office,WPS转office的转换方法
- 【MindSpore】 No module named apos;mindspore.dataset.transformsapos;
- 第六章 Caché 变量大全 $HOROLOG 变量
- ToG产品_产品运营方案框架_2019_002
- Docker使用入门
- KVM虚拟化技术及环境配置