: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

Numpy(科学计算包)- 【Matplotlib】

Numpy(科学计算包)- 【Matplotlib】

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

pip3 安装:
  1. pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
Linux 系统也可以使用 Linux 包管理器来安装:

    Debian / Ubuntu:
  1. sudo apt-get install python-matplotlib
复制代码
Fedora / Redhat:
  1. sudo yum install python-matplotlib
复制代码
安装完后,你可以使用 python -m pip list 命令来查看是否安装了 matplotlib 模块。
  1. $ pip3 list | grep matplotlib
  2. matplotlib        3.3.0
复制代码
实例

实例
  1. import numpy as np
  2. from matplotlib import pyplot as plt

  3. x = np.arange(1,11)
  4. y =  2  * x +  5
  5. plt.title("Matplotlib demo")
  6. plt.xlabel("x axis caption")
  7. plt.ylabel("y axis caption")
  8. plt.plot(x,y)
  9. plt.show()
复制代码
以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。

图形由 show() 函数显示。


图形中文显示

Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决。

这里我们使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。

官网:https://source.typekit.com/source-han-serif/cn/

GitHub 地址:https://github.com/adobe-fonts/s ... F/SimplifiedChinese

打开链接后,在里面选一个就好了:



你也可以在网盘下载: https://pan.baidu.com/s/10-w1JbXZSnx3Tm6uGpPGOw,提取码:yxqu。

可以下载个 OTF 字体,比如 SourceHanSansSC-Bold.otf,将该文件文件放在当前执行的代码文件中:

SourceHanSansSC-Bold.otf 文件放在当前执行的代码文件中:

实例
  1. import numpy as np
  2. from matplotlib import pyplot as plt
  3. import matplotlib

  4. # fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
  5. zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf")

  6. x = np.arange(1,11)
  7. y =  2  * x +  5
  8. plt.title("菜鸟教程 - 测试", fontproperties=zhfont1)

  9. # fontproperties 设置中文显示,fontsize 设置字体大小
  10. plt.xlabel("x 轴", fontproperties=zhfont1)
  11. plt.ylabel("y 轴", fontproperties=zhfont1)
  12. plt.plot(x,y)
  13. plt.show()
复制代码
执行输出结果如下图:
  1. 此外,我们还可以使用系统的字体:

  2. from matplotlib import pyplot as plt
  3. import matplotlib
  4. a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

  5. for i in a:
  6.     print(i)

  7. 打印出你的 font_manager 的 ttflist 中所有注册的名字,找一个看中文字体例如:STFangsong(仿宋),然后添加以下代码即可:

  8. plt.rcParams['font.family']=['STFangsong']
复制代码
作为线性图的替代,可以通过向 plot() 函数添加格式字符串来显示离散值。 可以使用以下格式化字符。

字符         描述
'-'         实线样式
'--'         短横线样式
'-.'         点划线样式
':'         虚线样式
'.'         点标记
','         像素标记
'o'         圆标记
'v'         倒三角标记
'^'         正三角标记
'<'         左三角标记
'>'         右三角标记
'1'         下箭头标记
'2'         上箭头标记
'3'         左箭头标记
'4'         右箭头标记
's'         正方形标记
'p'         五边形标记
'*'         星形标记
'h'         六边形标记 1
'H'         六边形标记 2
'+'         加号标记
'x'         X 标记
'D'         菱形标记
'd'         窄菱形标记
'|'         竖直线标记
'_'         水平线标记

以下是颜色的缩写:

字符         颜色
'b'         蓝色
'g'         绿色
'r'         红色
'c'         青色
'm'         品红色
'y'         黄色
'k'         黑色
'w'         白色

要显示圆来代表点,而不是上面示例中的线,请使用 ob 作为 plot() 函数中的格式字符串。

实例
  1. import numpy as np
  2. from matplotlib import pyplot as plt

  3. x = np.arange(1,11)
  4. y =  2  * x +  5
  5. plt.title("Matplotlib demo")
  6. plt.xlabel("x axis caption")
  7. plt.ylabel("y axis caption")
  8. plt.plot(x,y,"ob")
  9. plt.show()
复制代码
执行输出结果如下图:


绘制正弦波

以下实例使用 matplotlib 生成正弦波图。
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 计算正弦曲线上点的 x 和 y 坐标
  4. x = np.arange(0,  3  * np.pi,  0.1)
  5. y = np.sin(x)
  6. plt.title("sine wave form")  
  7. # 使用 matplotlib 来绘制点
  8. plt.plot(x, y)
  9. plt.show()
复制代码
执行输出结果如下图:



subplot()

subplot() 函数允许你在同一图中绘制不同的东西。

以下实例绘制正弦和余弦值:
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 计算正弦和余弦曲线上的点的 x 和 y 坐标
  4. x = np.arange(0,  3  * np.pi,  0.1)
  5. y_sin = np.sin(x)
  6. y_cos = np.cos(x)  
  7. # 建立 subplot 网格,高为 2,宽为 1  
  8. # 激活第一个 subplot
  9. plt.subplot(2,  1,  1)  
  10. # 绘制第一个图像
  11. plt.plot(x, y_sin)
  12. plt.title('Sine')  
  13. # 将第二个 subplot 激活,并绘制第二个图像
  14. plt.subplot(2,  1,  2)
  15. plt.plot(x, y_cos)
  16. plt.title('Cosine')  
  17. # 展示图像
  18. plt.show()
复制代码
执行输出结果如下图:



bar()

pyplot 子模块提供 bar() 函数来生成条形图。

以下实例生成两组 x 和 y 数组的条形图。

实例
  1. from matplotlib import pyplot as plt
  2. x =  [5,8,10]
  3. y =  [12,16,6]
  4. x2 =  [6,9,11]
  5. y2 =  [6,15,7]
  6. plt.bar(x, y, align =  'center')
  7. plt.bar(x2, y2, color =  'g', align =  'center')
  8. plt.title('Bar graph')
  9. plt.ylabel('Y axis')
  10. plt.xlabel('X axis')
  11. plt.show()
复制代码
执行输出结果如下图:


numpy.histogram()

numpy.histogram() 函数是数据的频率分布的图形表示。 水平尺寸相等的矩形对应于类间隔,称为 bin,变量 height 对应于频率。

numpy.histogram()函数将输入数组和 bin 作为两个参数。 bin 数组中的连续元素用作每个 bin 的边界。

实例
  1. import numpy as np

  2. a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
  3. np.histogram(a,bins =  [0,20,40,60,80,100])
  4. hist,bins = np.histogram(a,bins =  [0,20,40,60,80,100])  
  5. print (hist)
  6. print (bins)
复制代码
输出结果为:
  1. [3 4 5 2 1]
  2. [  0  20  40  60  80 100]
复制代码
plt()

Matplotlib 可以将直方图的数字表示转换为图形。 pyplot 子模块的 plt() 函数将包含数据和 bin 数组的数组作为参数,并转换为直方图。

实例
  1. from matplotlib import pyplot as plt
  2. import numpy as np  

  3. a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
  4. plt.hist(a, bins =  [0,20,40,60,80,100])
  5. plt.title("histogram")
  6. plt.show()
复制代码
执行输出结果如下图:


论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表