最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
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.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.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()
3.2图形的颜色
修改图形的颜色通过设定plot()的color参数来实现,color参数也可以简写为c。颜色的取值有多种方式指定,最常用的是直接设定颜色的名称或颜色名称的简写,也可以通过RGB数组(比如(1,1,0)等其他方式设定)。
主要color名称及其简写:
| 颜色名称 | 简写 |
| — | — |
| ‘red’ | ‘r’ |
| ‘black’ | ‘k’ |
| ‘blue’ | ‘b’ |
| ‘cyan’ | ‘c’ |
| ‘yellow’ | ‘y’ |
| ‘white’ | ‘w’ |
| ‘green’ | ‘g’ |
代码示例:
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], c=‘r’, label = ‘收盘价’, linestyle=‘solid’)
plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], c=‘b’, 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()
结果如图所示:
3.3 点的形状类型
除了线条类型外,还可以设置数据点的形状。数据点形状通过maker参数来设定。maker参数取值有很多,如表所示:
点的形状marker的部分值表
| 形状含义 | 英文含义(description) | 符号取值(marker) |
| — | — | — |
| 点 | point | ‘.’ |
| 圆圈 | circle | ‘o’ |
| 向下三角形 | triangle_down | ‘v’ |
| 向上三角形 | ‘triangle_up’ | ‘^’ |
| 向左三角形 | ‘triangle_left’ | ‘<’ |
| 向右三角形 | ‘triangle_right’ | ‘>’ |
| 正方形 | square | ‘s’ |
| 五边形 | pentagon | ‘p’ |
| 六边形 | hexagon1 | ‘h’ |
| 加号 | plus | ‘+’ |
| 叉号 | x | ‘x’ |
| 钻石 | diamond | ‘D’ |
| 星号 | star | ‘*’ |
| 竖线 | vline | ‘|’ |
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], marker=‘o’, c=‘r’, label = ‘收盘价’, linestyle=‘solid’)
plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25],marker=‘*’, c=‘b’, 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=‘both’)
plt.legend()
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!