Python--Matplotlib库与数据可视化①--修改图像属性(1)

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 参数axis:

  • 2.5 增加图例

  • 3.多种线条属性

    • 3.1线条的类型
  • 3.2图形的颜色

  • 3.3 点的形状类型

  • 3.4 线条宽度

起步

========================================================================

导入matplotlib:


import matplotlib.pyplot as plt

使用内部函数plot()来绘制图线


plt.plot(Close[‘2020’])

执行完代码图像未显示出来时,还需要用到show()方法。

plt.show()

默认方式过于简单而漏掉了很多信息,作如下补充

修改图像属性

============================================================================

1.坐标


1.1 更改坐标轴范围

假设-1和1表示买入和卖出,现绘制某一时间段买卖点:

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

在这里插入图片描述

  • rcParams 是Matplotlib库中pyplot包绘图的参数字典,key为’axes.unicode_minus’的默认取值(value)为True,表示unicode的minus类型,有些字体对其兼容性支持不够,导致负号无法正常显示,现在将’axex.unicode_minus’的取值设为False,则可正常显示负号。

plt.rcParams[‘axes.unicode_minus’] = False

上图默认以-1和1为y轴坐标的最小指和最大值。如要调大坐标范围,则通过设定xlim()和ylim()来实现。xlim()函数用来调节X轴的范围,ylim用来调节Y轴的范围。

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

重新绘制,效果如下图所示

在这里插入图片描述

1.2设定坐标标签与显示角度

  • 可以通过xticks()和yticks()函数设定坐标的标签。基本用法如下:

  • matplotlib.pyplot.xticks(location, lables)

  • matplotlib.pyplot.yticks(location, lables)

location:指标签的位置,一般由浮点数或是证书组成的列表

labels:表示坐标的标签,一般为与location等长的字符串列表

rotation:控制标签与X轴正向的角度。

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2015-02-09’], rotation=45)

这里把标X轴签与与Y轴正向的夹角设成了45度。

结果如图:

在这里插入图片描述

2.添加文本


2.1 添加标题

  • 添加标题可以通过pyplot包中的title()函数实现。

matplotlib.pyplot,title(s, *args, **kwargs)

参数s为str类型数据。

参数loc:设定标题的显示位置。可选取值有:“counter”,“left”,“right”,分别表示位于坐标轴的中央、左边缘和右边缘。loc默认取值为"center"。

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票买卖点曲线图’)

2.2中文显示问题

默认情况下,图形中的中文为乱码形式,有两种方式可以解决matplotlib绘图中的中文显示问题。

  • 1.每次绘图前,通过代码更改参数。更改Matplotlib包中pyplot包的参数字(rcParams)字体的无衬线字体属性(font.sans-serif, 为参数字典的一个key)的取值(value),现将其设定为以’SimHei’为元素的数组形式。

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

  • 2.如果每次绘图前都要考虑中文显示问题和执行上边的代码,不免就有些麻烦,当参数行数较多时,可能会顾此失彼。为了一劳永逸,可以修改一下Matplotlib配置文件中相关绘图属性的取值。该具体操作不再过多赘述。此操作虽方便,但会降低代码的普适性,不便于日后交流,固应根据个人需求酌情采用。

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票买卖点曲线图’)

具体效果如图所示:

在这里插入图片描述

2.3 设定坐标轴标签

在图像中添加坐标轴标题可以直观地显示坐标轴代表的数据变量。X轴、Y轴的标签设定分别通过xlabel()和ylabel()函数来实现,这两个函数也位于pyplot包中。

基本语法

  • xlabel(‘a’)

  • ylabel(‘b’)

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票买卖点曲线图’)

plt.xlabel(‘日期’)

plt.ylabel(‘买卖点’)

示例结果:

在这里插入图片描述

2.4 增加图形背景 grid

在Matplotlib包中,pyplot包内的grid()函数用于增加并设定图形的背景,函数的参数形式如下:

  • matplotlib.pyplot.grid(b=None,which=‘major’, axis=‘both’, **kwargs)
参数b:
  • 布尔数据类型,设定是否显示grid。默认为None,不显示。如需显示,则将B设定为True。
参数which:
  • 设定 分割标示线(tick) 的类型,取值为"major", “minor"或者"both”。

  • 默认为"major",表示以原本坐标轴分割标示线为准;

  • 若取值为"minor",则表示 进一步细分 坐标轴分割标示线,但是 分割标准要提前设定好。如果只是设定值为"minor",则图形不会显示grid。

  • "both"表示大小区间坐标轴分割线都有。

参数axis:
  • 制定绘制grid的坐标轴,取值为"both"(default), “x”, 或者"y"。both表示X轴和Y轴的grid都绘制。 默认都绘制。

使用示例:

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([1, 1, 0, 0, -1, 0, 1, 1, -1])

plt.ylim(-1.5,1.5)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票买卖点曲线图’)

plt.xlabel(‘日期’)

plt.ylabel(‘买卖点’)

plt.grid(True,axis=‘y’)

在这里插入图片描述

2.5 增加图例

  • 多条曲线显示在一张图中时,图例可以帮助我们区分识别不同的曲线。如对某股票的价格数据中,除了收盘价,开盘价也涵盖了市场中的很多信息,将收盘价与开盘价对比分析,可能会发现一些新的信息。

  • 图例的增加, 通过pyplot包中的**lengend()**函数实现。

matplotlib.pyplot.lengend(*args, **kwargs)

该函数常用到的一个参数是loc参数,用于设定图例在图中的位置。参数loc取值如表所示:

参数loc取值表:

| 含义 | 字符串类型值 | 数字值 |

| — | — | — |

| 最适宜位置 | ‘best’ | 0 |

| 右上角 | ‘upper right’ | 1 |

| 左上角 | ‘upper left’ | 2 |

| 左下角 | ‘lower left’ | 3 |

| 右下角 | ‘lower right’ | 4 |

| 右侧 | ‘right’ | 5 |

| 左侧中间 | ‘center left’ | 6 |

| 右侧中间 | ‘center right’ | 7 |

| 下方中间 | ‘lower center’ | 8 |

| 上方中间 | ‘upper center’ | 9 |

| 中间 | ‘center’ | 10 |

该函数成功增加图例的前提是在绘制图形时,要为图形设定lebel,lebel的值就是图例的文本内容。

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31], label = ‘收盘价’)

plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label = ‘收盘价’)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票开盘价&收盘价时序图’)

plt.xlabel(‘日期’)

plt.ylabel(‘价格’)

plt.grid(True,axis=‘y’)

plt.legend()

结果如图所示:

在这里插入图片描述

3.多种线条属性


3.1线条的类型

plot()函数中的linestyle参数用于设定曲线的类型。为了书写方便,有时会用ls代替linestyle, 该参数的主要取值如表所示:

线条类型可能取值表

| 类型 | 名称取值 | 符号取值 |

| — | — | — |

| 实线 | ‘solid’ | ‘-’ |

| 虚线 | ‘dashed’ | ‘—’ |

| 线点 | ‘dashdot’ | ‘-.’ |

| 点线 | ‘dotted’ | ‘:’ |

| 不画线 | ‘None’ | ‘’ |

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

plt.plot([5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31], label = ‘收盘价’, linestyle=‘solid’)

plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label = ‘收盘价’, ls=‘-.’)

plt.xticks(range(9), \

[‘2021-02-01’, ‘2021-02-02’, ‘2021-02-03’, ‘2021-02-04’, \

‘2021-02-05’, ‘2021-02-06’, ‘2021-02-07’, ‘2021-02-08’, \

‘2021-02-09’], rotation=45)

plt.title(‘某股票开盘价&收盘价某时间序列内时序图’)

plt.xlabel(‘日期’)

plt.ylabel(‘价格’)

plt.grid(True,axis=‘y’)

plt.legend()

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

部分使用说明: 点击开始菜单-运行命令,在对话框输入: "jhead –命令参数 jpeg文件" 例如: “jhead -de D:\A.jpg” 删除D盘盘根目录下A.jpg文件的exif信息。 “jhead -de D:\*.jpg” 删除D盘根目录下所有jpg文件的exif信息。其中星号是通配符。 二、通用指令参数 -te 将其他jpeg文件的eixf导入目标jpeg。例如"jhead –te D:\B.jpg D:\A.jpg" -dc 删除jpeg信息中的备注。注意,jpeg文件有两个备注,一是和其他文件一样的备注,另一个是exif信息中的备注。jhead仅对exif信息有效。 -de 完全删除exif信息。 -du 删除非原始exif信息,例如Photoshop、Turbophoto之类编辑后修改exif留下的信息。 -purejpg 删除所有jpeg文件非必须的信息。相当于-de、-dc和-du的集合,可以将文件减小数k。 -ce 修改文件的jpeg文件头部分备注(此备注并非exif信息)。该指令会打开文本编辑器,并在编辑器关闭时将备注信息存入文件。 -cs 导出备注。例如"jhead –cs D:\988.txt D:\A.jpg" -ci 导入备注。例如"jhead –ci D:\988.txt D:\A.jpg" -cl 直接输入备注。。例如"jhead –cl 我的备注 D:\A.jpg" 三、其他指令 时间日期 -ft 将jpeg文件的“修改时间”修改为exif信息中记录的时间。 -n[] 该指令会将文件名修改为exif信息中记录的“创建时间”;如果jpeg文件没有exif或者exif中的创建时间不可用,则将文件名修改为文件的“修改时间”。 默认的格式-顺序为MMDD-HHMMSS 格式-顺序参数如下: %d-日(01-31) %H-小时(00-23) %j-一年中的第几天(001-366) %m-月(01-12) %M-分钟(00-59) %S-秒(00-59) %U-一年中的第几周(00-53) %w-星期几(0-6,周日为0) %y-两位数纪年(00-99) %Y-四位数几年 %i-添加数字序号 例如: jhead -n%Y%m%d-%H%M%S d:\*.jpg 将所有jpg文件修改为YYYYMMDD-HHMMSS.jpg的格式。 -nf 与“-n”相同功能相同,不保留原文件名。 -a 修改不同扩展名的同名文件名,相机拍摄的avi短片exif信息存储在与其同名的thm文件中,可用此指令给avi文件更名。一般与“-n”指令共同使用。 -ta 修正时差,例如时差根据时区确定,例如+1:00或者-1:00 -da- 修正日期。日期格式是yyyy:mm:dd、yyyy:nn:dd+hh:mm或者 yyyy:mm:dd+hh:mm:ss。根据前后参数时间差调整exif的时间。 -ts 直接修改exif中的拍摄时间,日期-时间格式为yyyy:mm:dd-hh:mm:ss 缩略图 -dt 删除exif中的缩略图。这个缩略图一般为240x160像素,10k大小,用于数码相机、Windows XP查看照片,删除它不会影响工作。 -st 将exif中的缩略图复制为另一个jpeg文件 -rt 用另一个jpeg文件替换exif中的缩略图 -rgt[大小] 刷新exif缩略图,其中大小为缩略图的最大边长。 旋转 -autorot 根据exif中记录的水平方向信息转动jpeg照片。 -norot 清除exif中的水平方向信息。 四、使用技巧 1)用开始菜单的"运行"指令并不直观,可以通过运行cmd命令进入DOS命令提示符界面操作。在DOS界面进入操作照片文件夹(不懂DOS操作的朋友建议稍稍学习DOS指令,今后也会受用无穷),在文件夹中运行jhead命令,用“*.jpg”表示文件夹中所有的jpeg文件,可以进行批处理。 2)-te(复制exif信息)作用在于可以恢复被其他编辑软件删除的exif信息。编辑照片之前,先在照片文件夹中建立一个名为“backup”的备份文件夹,将原是照片复制到backup文件夹中,然后再编辑照片,编辑软件可能会删除或修改exif。编辑结束后进入DOS界面照片文件夹输入: jhead –te “backup\&i” *.jpg 照片的exif信息就会从backup文件夹的原始文件中复制回来。其中“&i”表示与目标文件同名的文件,前面的“backup\”表示原始文件位置。 3)-purejpg指令可以删除所有exif信息,让照片减小若干k字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值