成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃


import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams['font.family'] = 'SimHei'
mpl.rcParams['axes.unicode_minus'] = False

一、入门

plt.plot([1,2,3,4],[2,3,1,7],'*-.r')
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

二、深入

调用show之前的所有plot的图像会在同一张图中显示出来

plt.plot([1,2,3,4],[2,3,1,7],'*-.r')
plt.plot([1,2,3,4],[3,5,1,0],'o-b')
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

常见的图像标注函数

plt.plot([1,2,3,4],[2,3,1,7],'*-.r',label='LINE A')
plt.plot([1,2,3,7],[3,5,1,0],'o-b',label='LINE B')

plt.title("测试标题")

plt.xlabel("测试X轴")

plt.ylabel("测试Y轴")

plt.xlim(0,10)

plt.ylim(0,8)

plt.xticks(np.arange(0,10,2))

plt.yticks([0,1,3,5,7],['a','b','c','d','e'])

plt.legend()

plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

三、和pandas一起搞

import pandas as pd

df = pd.read_csv('maotai.csv',index_col=0,thousands=',',parse_dates=True)[['开盘','收盘','高','低']]
df

开盘收盘高低日期2021-11-121778.001773.781785.051767.002021-11-111752.931769.601769.601741.502021-11-101790.011753.991795.001735.002021-11-091819.981790.011827.871782.002021-11-081820.001820.101830.801802.05……………2020-11-181715.001693.651720.531683.162020-11-171740.001715.801742.351701.072020-11-161711.001730.051730.051697.262020-11-131724.001705.001728.881691.002020-11-121730.011734.791750.001722.27

244 rows × 4 columns

DataFrame支持直接绘图

df.plot()
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

作业:

使用Matplotlib模块在一个窗口中绘制数学函数y=x,y=x2,y=x3+5x^2+2x+1的图像,使用不同颜色的线加以区别,并使用图例说明各个线代表什么函数。

我的答案
x=np.linspace(-10,10,10000)
plt.plot(x,x,'-r',label="y=x")
plt.plot(x,x**2,':b',label="y=x^2")
plt.plot(x,3*x**3+5*x**2+2*x+1,'-.y',label="y=3x^3+5x^2+2x+1")
plt.legend()
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃
标准答案
x = np.linspace(-1000,1000,100000)
y1 = x.copy()
y2 = x**2
y3 = 3*x**3+5*x**2+2*x+1
plt.plot(x,y1,color='red',label='y=x')
plt.plot(x,y2,color='green',label='y=x^2')
plt.plot(x,y3,color='blue',label='y=3*x^3+5x^2+2x+1')
plt.xlim(-1000,1000)
plt.ylim(-1000,1000)
plt.legend()
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

四、Matplotlib画布与子图

提问:如何用一个show画出两张图


fig = plt.figure()

ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)

ax1.plot([1,2,3,4],[4,3,2,1])
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

五、柱状图与饼图


plt.bar([0,1,2,4],[5,6,7,8])
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

data = [62,48,56,100]
labels = ['Jan','Feb','Mar','Apr']

plt.bar(np.arange(len(data)),data,color='red',width=0.3)
plt.xticks(np.arange(len(data)),labels)
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

plt.pie([10,20,30,40],labels=['a','b','c','d'],autopct="%.2f%%",explode=[0,0.1,0,0.1])
plt.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

六、绘制K线图

matplotlib.finanace中提供了大量绘制金融相关图的函数接口

绘制K线图:matplotlib.finanace.candlestick_ochl函数

完蛋了,家人们!这个包没了!!

终端输入 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple –upgrade mpl_finance

更新完毕后,再输入pip install –upgrade mplfinance

更新一下,把包找回来,按照下面的方式导入

import mpl_finance as fin
mpl.use('Qt5Agg')
from matplotlib.dates import date2num
df

开盘收盘高低日期2021-11-121778.001773.781785.051767.002021-11-111752.931769.601769.601741.502021-11-101790.011753.991795.001735.002021-11-091819.981790.011827.871782.002021-11-081820.001820.101830.801802.05……………2020-11-181715.001693.651720.531683.162020-11-171740.001715.801742.351701.072020-11-161711.001730.051730.051697.262020-11-131724.001705.001728.881691.002020-11-121730.011734.791750.001722.27

244 rows × 4 columns


df['time']=date2num(df.index.to_pydatetime())
df

开盘收盘高低time日期2021-11-121778.001773.781785.051767.0018943.02021-11-111752.931769.601769.601741.5018942.02021-11-101790.011753.991795.001735.0018941.02021-11-091819.981790.011827.871782.0018940.02021-11-081820.001820.101830.801802.0518939.0………………2020-11-181715.001693.651720.531683.1618584.02020-11-171740.001715.801742.351701.0718583.02020-11-161711.001730.051730.051697.2618582.02020-11-131724.001705.001728.881691.0018579.02020-11-121730.011734.791750.001722.2718578.0

244 rows × 5 columns

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

arr = df[['time','开盘','收盘','高','低']].values
fin.candlestick_ochl(ax,arr)
fig.show()

成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

fin.candlestick_ochl(ax,arr) ax为子图,表示在该子图上作K线图,arr传入数组对象,共5组数据分别为时间、开盘数据、收盘数据、最高、最低,即对应o(open)c(close)h(high)l(low)

Original: https://blog.csdn.net/qq_49259434/article/details/121441990
Author: 这个人不主动
Title: 成为华尔街金融巨鳄第四课:Matplotlib从入门到放弃

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765418/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ②【Maven】从0上手Maven的安装与配置 – 最全教程 (下载 + 配置 + 环境变量 )

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~个人主页:.29.的博客学习社区:进去逛一逛~ Maven &…

    Python 2023年10月10日
    046
  • 如何优雅的杀掉一个进程

    如何优雅的杀掉一个进程 前言 在我们通常使用linux操作系统的时候,经常会有这样的需求——杀死一个进程,比如说你一不小心启动了一个后台进程或者守护进程,而这个进程是你不需要的,因…

    Python 2023年10月17日
    053
  • Python爬虫之Scrapy框架(CrawlSpider的简单使用)

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

    Python 2023年10月3日
    039
  • 大连理工大学软件学院2022年秋季学期《矩阵与数值分析》上机作业

    文章目录 《计算机科学计算》第二版 * 162页第12题(1) 162页第16题 216页第12题 《数值分析方法与应用》 * 一、基础知识部分 – 1、 5、 二、线…

    Python 2023年9月29日
    043
  • Intent Filter

    我们都知道,Intent 可以分为两种类型,分别为显式和隐式。 显示的调用也就是常使用的: Intent intent = new Intent(context,Activity….

    Python 2023年11月8日
    028
  • gem5 使用记录, 基于理解来写个最简单的计数器程序

    学习GEM5其实是因为工作需要,主要是用来做数字电路的模型仿真的,之前用过 systemC,现在公司用的 gem5,其实本质上都是 C++只是套个不同的壳然后拿去仿真而已,SC本身…

    Python 2023年10月22日
    049
  • pytest fixture简介

    pytest fixture简介 简介: fixture区别于unnitest的传统单元测试(setup/teardown)有显著改进: 1.有独立的命名,并通过声明它们从测试函数…

    Python 2023年9月14日
    035
  • python|在pycharm中pygame安装指引

    python|在pycharm中pygame安装指引 检查是否安装pip pip安装pygame 检测是否安装完成 我电脑上运行的问题 这里通过pip安装会更快一丢丢 检查是否安装…

    Python 2023年9月21日
    037
  • Python采集1000多所世界大学排名数据,制作可视化图

    前言 QS世界大学排名(QS World University Rankings)是由英国一家国际教育市场咨询公司Quacquarelli Symonds(简称QS)所发表的年度世…

    Python 2023年11月2日
    054
  • Python 3.12 目标:还可以更快!

    按照发布计划,Python 3.11.0 将于 2022 年 10 月 24 日发布。 据测试,3.11 相比于 3.10,将会有 10-60% 的性能提升,这个成果主要归功于&#…

    Python 2023年10月31日
    034
  • python_open函数中newline参数详解

    问题的由来 我在读pythoncsv模块文档 看到了这样一句话 如果 csvfile 是文件对象,则打开它时应使用 newline=”。其备注:如果没有指定 newli…

    Python 2023年8月2日
    056
  • Pyhton 批量筛选Excel的方法——Pandas的使用

    Pyhton 批量筛选Excel的方法——Pandas的使用 摘要 说明 * 1、初始化数据(可跳过) 2、根据条件筛选数据 摘要 在进行数据处理时,经常需要筛选出满足条件的数据,…

    Python 2023年8月17日
    060
  • Python-模板注入

    何为模板注入? 模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,哲大大提升了开发效率,良好的设计也是的代码重用变得更加容易。 到那时模板引擎也拓宽了我们的攻…

    Python 2023年8月10日
    056
  • pandas 数据结构–DataFrame

    DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。DataFrame 是最常用的 Pandas 对象,…

    Python 2023年8月18日
    061
  • 【Linux】Linux下调试器gdb的使用

    ### 回答1: 在 Linux_中 _使用 gdb_调试的步骤如下: 1. 编译程序时需要加上-g选项,以便在调试时能够获取到符号表信息。 2. 在终端中输入 _gdb_命令,进…

    Python 2023年11月7日
    047
  • Pygame实战:BOOM 这有一款超刺激的扎气球游戏等你来玩~

    导语 ​ ​ 说陪女朋友在小广场上面逛街玩儿扎气球:结果一个都没扎破,扎心了老铁。 女朋友都要离家出走了~让我给想想办法:小编只想给你一个表情。 ​ 哈哈哈,开玩笑的~ 于是, 为…

    Python 2023年9月20日
    055
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球