图形最初显示的样式往往并非十分好看,我们可以通过大量的设置为完善图形的显示。事实上,matplotlib样式设置功能非常强大,因此在这里我们也主要结合一些最为常见的功能来做介绍。

比如我们想改变线性图的样式:

plt.plot(frame[‘收盘价’], label=”close”, color=”red”, linewidth=2)

plt.legend()

plt.show()

这里的设置都比较见名知意,分别是标签、线条颜色和宽度,2表示两个像素,越大越粗。注意,一定要在show显示前加上legend方法,否则无法看到标签文本内容。

大家可能注意到了红色的曲线,文本标签默认位于右上角。这个标签通常在绘制多条线条时可以很好的区分哪条线条是哪一个数据。

如果要想改变,还是需要修改legend:

plt.legend(loc=9)

此时为上部居中显示。具体数字含义可以参考网上资料,或者自己也可以尝试观察下。

这里有一个常见问题,如果写成中文汉字标签,就会无法正确显示。个中原因主要是无法找到对应的中文字体。对于此类问题,操作略微麻烦些,不过只需复制过去即可:

# coding:utf-8

import pandas as pd

import matplotlib.pyplot as plt

from pylab import mpl

frame = pd.read_csv('C:\\temp\\股票数据.csv', encoding='GBK')

frame = frame.set_index('日期')

frame.index = pd.to_datetime(frame.index)

plt.plot(frame['收盘价'], label="收盘价", color="red", linewidth=2)

mpl.rcParams['font.sans-serif'] = ['SimHei']

plt.legend()

plt.show()

其中首先导入pylab库的mpl类型,然后通过它的rcParams函数设置中文字体,其中SimHei就是我们常见的黑体。

可以看出正确的显示了所需的中文及其正确的字体。

我们继续增加些常见的文字说明,

plt.xlabel(“Year”)

plt.ylabel(“Price”)

plt.title(“Close Price”)

这里分别是横轴、纵轴和顶部标题的各自设置方法。

从图中来看,都比较直观和增加图形的可读性。

同样,如果是中文汉字,也需要设置字体,并在输出汉字时使用该字体:

from matplotlib.font_manager import FontProperties

font = FontProperties(fname=”c:\\windows\\fonts\\simsun.ttc”, size=14)

plt.xlabel(“年份”, fontproperties=font)

plt.ylabel(“股价”, fontproperties=font)

plt.title(“收盘价”, fontproperties=font)

其中,fname需要指定字体所在的位置,这里是宋体文件名称,也是默认的位置。

常见的文字信息一般就是这些,下面我们来看看图形的设置。

一般而言,默认的线条样式还是过于简单,我们来改一下:

plt.plot(frame[‘收盘价’], “.”)

plt.show()

这种改动位于数据列后面的一个参数,表示点的样式。

可以看出这里不再使用直线连接各个点,而是只绘制当前点。

点可以改变,甚至可以变成其他的模样。

plt.plot(frame[‘收盘价’], “+”)

这里表示加号点。

大家可以自行到网上去查找下更多的设置方法。

这个参数同时还可以设置颜色和点之间连线的类型:

plt.plot(frame[‘收盘价’], “+r:”)

plt.show()

这里是红色的虚线。

进一步结合更多属性设置,可以设置出更为复杂的效果:

plt.plot(frame[‘收盘价’], “.r”, markersize=30, markeredgecolor=’orange’, markeredgewidth=2)

这里的点的大小、边缘的颜色、和边的宽度都可以设定。

效果和美观当然需要大家根据数据和自己的理解做出组合和应用。

当然,不同的图形,样式设置也有一些差异,比如我们如果使用散点图来绘制这个图形,就可以单独来设置每个点的样式:

plt.scatter(frame[‘开盘价’], frame[‘收盘价’], c=’r’, s=10, alpha=0.6)

这里的c表示点的颜色,s表示点的大小,alpha为透明度,在点与点重叠时,增加点透明度可以更好的看清点点之间的重叠,1为默认的不透明。

这些都可以从结果看的出来。

进一步完善下:

plt.scatter(frame[‘开盘价’], frame[‘收盘价’], c=frame[‘成交量’], s=frame[‘换手率’], alpha=0.5)

plt.colorbar()

plt.show()

这里展示了散点图一种优势,即不仅可以通过二维坐标同时展示两组数据的对应关系,还能通过点的颜色和大小表达更多的数据内容。比如这里我们使用成交量分别映射成不同的颜色,为了能够看清建议此时加上colorbar。换手率通过点的大小来表示。

从图中可以看出,成交量最大的是黄色,颜色对应的数据为三千八百万左右,对应的开盘价和收盘价都在20左右,

这个和数据实际情况是一致的。

图中的最大的点表示最大的换手率,对应的开盘价和收盘价都在40左右

这个和数据实际情况是一致的。

除此以外,还可以直接利用系统定义好的一些样式主题,如:

plt.style.use(‘dark_background’)

plt.scatter(frame[‘开盘价’], frame[‘收盘价’])

plt.show()

这个黑色背景显得很深邃些。

要想知道系统有哪些可用的样式,可以使用下面的语句来查看:

绘图可以同时绘制多个图形,比如我们绘制两个不同的股票信息:

# coding:utf-8

import pandas as pd

import matplotlib.pyplot as plt

frame1 = pd.read_csv('C:\\temp\\股票数据.csv', encoding='GBK')

frame1 = frame1.set_index('日期')

frame1.index = pd.to_datetime(frame1.index)

frame2 = pd.read_csv('C:\\temp\\600339.xls')

frame2 = frame2.set_index('date')

frame2.index = pd.to_datetime(frame2.index)

plt.plot(frame1['最低价'])

plt.plot(frame2['close'])

plt.show()

一般绘图会自动采用不同的颜色在区分表示。这里由于数据时间起至不一样,因此两个线条长短不一。

为此,我们可以调整下两个轴显示数据的范围:

plt.xlim(datetime(2012, 1, 1), datetime(2019, 12, 31))

plt.ylim(0, 100)

记得导入datetime。

显示内容确实调整了x和y轴数据的范围。

当然,有时也可以分开显示,这可以以子图的方式来实现:

plt.subplot(2, 1, 1)

plt.plot(frame1[‘最低价’])

plt.subplot(2, 1, 2)

plt.plot(frame2[‘close’])

plt.show()

这里的subplot就是子图的意思,2表示纵向两个,1表示横向一个,

最后一个1和2表示对应哪一个。显然1在上面,2在下面。

python做图片美化软件_Python大数据分析2:图形样式的美化相关推荐

  1. 用python玩转办公软件(pandas数据分析)入门

    用python玩转办公软件(pandas数据分析)入门 文章目录 用python玩转办公软件(pandas数据分析)入门 1.pandas介绍 2.csv文件介绍 3.pandas常用操作csv (1 ...

  2. python做图片美化_python图片美化

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 功能性是开发的第一要务每一个 python 图形界面库都有它自有的功能特性和界面 ...

  3. python做图片美化_Python实现简单的照片磨皮(照片智能磨皮) 最新免费版

    Python实现简单的照片磨皮(照片智能磨皮)是一款用python写的最好的照片磨皮软件.需要配置opencv和numpy,使用的时候地址需要加英文的引号,斜杠要用双斜杠,例如"D:\\a. ...

  4. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?

    python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...

  5. python图片裁剪软件_python 实现图片裁剪小工具

    实现:tkinter 画布上显示图片,按下鼠标左键并且移动,实现截图 # -*- encoding=utf-8 -*- import os import tkinter as tk from PIL ...

  6. python写彩票预测软件_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程NO.6 用python做个简单的彩票号码统计分析工具-1.jpg (37.04 KB, 下载次数: 0) 2020-11-27 14:29 上传 python入门教程 pytho ...

  7. 用python将图片变为油画_Python也能成为毕加索?我用Python给小姐姐画了幅油画

    原标题:Python也能成为毕加索?我用Python给小姐姐画了幅油画 小编的舍友最近交了一个女朋友,是念艺术系的,擅长画画!长的好看又漂亮,舍友经常在我耳边吹嘘,女朋友画的油画多么漂亮. 哎...经 ...

  8. python做exe开发教程_python做exe开发教程

    python做exe开发教程内容摘要 python做exe开发教程其他方法无效时可用免疫抑制剂,交通部监理员教程证,6.客户端的异常测试.6.机费用械性能(1)抗拉试验:酒店入职教程内容,6.9l-8 ...

  9. python做些什么项目_Python 的练手项目有哪些值得推荐

    1 Web方向的练手项目 这个其实是肯定不用多少的了.Python的练手项目就是可以做一个网站了.我们可以做一个属于自己的博客.在做博客的时候,我们可以巩固的知识点是 Html+CSS+JS的基础知识 ...

最新文章

  1. 哈佛MIT坐镇的波士顿,正式宣布政府禁用人脸识别
  2. Python字典的排序方法,你用对了吗
  3. 邮件实现详解(三)------邮件的组织结构
  4. oracle仲裁磁盘是一块磁盘吗,基于ASM冗余设计的架构,仲裁磁盘组应该如何去规划?...
  5. MySQL binlog三种模式
  6. haproxy+keepalived实现高可用K8S集群部署
  7. 一改性冷淡风!红米Note 7 Pro包装盒曝光
  8. 【转】如何查找MySQL中慢查询的SQL语句
  9. 华为数通HCNP学习历程分享
  10. 防火墙OPNsense安装
  11. 六成应用不需要程序员,一大批程序员会失业?
  12. js实现表格按行滚动
  13. 跟我一起从零学习安卓逆向分析
  14. vue 拖拽功能样式优化
  15. Corona SDK 游戏开发引擎介绍
  16. java和python哪个更好找工作?
  17. 功率输出器件:直流电机工作原理
  18. Ajax 和 XML: 五种 Ajax 反模式
  19. 【python】分苹果
  20. EAS的WEB开发入门

热门文章

  1. Fragmentation
  2. 戴尔t640服务器无法显示独显,[整合] 解决 Dell T640 安装显卡后风扇转速不降低
  3. 5 分钟理解数据库死锁
  4. 千万别娶或者别嫁韩国人
  5. 生成对抗网络(Generative Adversarial Networks)
  6. 泰森多边形的建立描述
  7. Linux入门-常见指令
  8. 排序算法-快速排序的时间复杂度分析
  9. linux进阶51——pthread_rwlock_t(读写锁)
  10. 中南财经政法大学计算机实践试题及答案,中南财经政法大学计算机2006-2007期末考试卷(A)答案...