Matplotlib图形绘制

一、 基础点

网格线
"""
plt.grid()         # 全部展示
plt.grid(1)        # 显示网格线 1=True=默认显示;0=False=不显示
plt.grid(b=True)   #  1=True=默认显示;0=False=不显示
plt.grid(b=True, axis='x')     #只显示x轴网格线 (axis in ['x', ''y','both'] 对应显示网格线)
plt.grid(b=1, which='major')   # which 默认就是major, 边界展示both minor则不显示网格(去除网格)
alpha=.3                       # 透明度

"""

x ,y轴设置
"""
plt.xlim() ylim()函数 设置x轴y轴范围坐标
plt.xlim(50, 750)   # x轴
plt.ylim(50, 750)   # y轴

xticks()函数设置X轴方法--刻度、标签
plt.xticks(
    xtick_location, xtick_labels, rotation=60,fontsize=12,horizontalalignment='center', alpha=.7
           )
xtick_location :刻度
xtick_labels : 标签
rotation : 倾斜度
fontsize : 字体大小
horizontalalignment : 水平对齐
alpha : 透明度

xlabel 坐标轴标签
plt.xlabel("时间")
plt.ylabel("收益率")
plt.xlabel(x_label, position= [1, 1])
"""

图例
"""
legend = plt.legend([p1, p2], ["BJ", "SH"])
loc: 位置
title:  标题
frameon=False  # 去掉图例边框
edgecolor: 图例边框颜色
facecolor: #背景颜色

"""

解决中文显示问题
"""
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
"""

注释文本

"""
text表示注释文本,xy表示箭头端点位置,xytext表示文本注释的位置,arrowprops控制箭头,形式为字典

plt.text(x = 1,y = 0.5,s = '这是标注',fontsize = 15,c = 'b',rotation = 20)
plt.annotate(
    text = '描述文字',xy = (4.65,-1), xytext = (4.2,0),
    arrowprops = {'headwidth':10,'facecolor':'g'},fontsize = 15)

"""

绘图填充
"""
plt.fill_between()
第一个参数表示要覆盖的左右范围,第二个参数表示覆盖的下限,第三个参数表示覆盖的上限,在这里则表示填充y1曲线和y2曲线中间的区域
plt.fill_between(x,y1,y2,facecolor = 'k',alpha = 0.2)

"""

画框及打标签

"""
画框
current_axis = plt.gca()
current_axis.add_patch(plt.Rectangle(
    (xmin, ymin), xmax-xmin, ymax-ymin,
    color='green', fill=False, linewidth=2
    )
 )
打标签 label是想要打的标签名
current_axis.text(
    xmin, ymin, 'label', size='x-large',
    color='white',
    bbox={'facecolor':'green', 'alpha':1.0}
    )

设置边框
获取当前坐标轴位置并移动
plt.gca().spines["top"].set_alpha(0.0)

"""

二、 代码实例

import time
from  jqdatasdk import *
import logging
import matplotlib.pyplot as plt
import pandas as pd

auth("name", "pwd")

df = get_price('000300.XSHG',end_date='2020-4-4',count=300)
df['date1']= df.index.tolist()
df['date']=df['date1'].apply(lambda x:x.strftime('%Y-%m-%d %H:%M:%S'))
df["value"] = ((df['close']/df['high'])-1)*100
print(df)
df.drop(["date1"], axis=1, inplace=True)
print(df)
Draw Plot
plt.figure(figsize=(12, 8), dpi=80)
plt.plot(df['date'], df['value'], color='#dc2624')

Decoration
xtick_location = range(0,len(df),30)

print(xtick_location)
xtick_labels = [str(x[:10]) for x in df.date.tolist()[::30]]
print("xtick_labels")
print(xtick_labels)
plt.xticks(xtick_location,
           xtick_labels,
           rotation=60,
           fontsize=12,
           horizontalalignment='center',
           alpha=.7
           )

plt.yticks(fontsize=12, alpha=.7)

plt.title("Air Passengers Traffic", fontsize=18)
plt.grid(alpha=.3, which='both', color="r")
plt.legend(["ROE"],loc='best', title='收益率', facecolor='y')
解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.xlabel("时间")
plt.ylabel("收益率")
plt.xlabel(x_label, position= [1, 1])
底色填充
y1 =  -1
y2 =  -2
plt.fill_between(xtick_location, y1, y2, facecolor = 'y', alpha = 0.2)

文本标注
plt.text(x = 10, y = -1,s = '收益率曲线图',fontsize = 15, c = 'b',rotation = 20)
plt.annotate(
    text = 'xy表示箭头端点位置,xytext表示文本注释的位置,arrowprops控制箭头',
    xy = (50,-3), xytext = (100,  -4),
    arrowprops = {'headwidth':8,'facecolor':'g'},fontsize = 15)

Remove borders
plt.gca().spines["top"].set_alpha(0.0)
plt.gca().spines["bottom"].set_alpha(0.3)
plt.gca().spines["right"].set_alpha(0.0)
plt.gca().spines["left"].set_alpha(0.3)

plt.savefig("test.jpg")

三、 效果图

Matplotlib图形绘制

1. 直接使用 * 的结果

a*a就是说直接把两个二维矩阵的每个元素进行对应相乘。

必须是 两个维度完全相同的ndarray
2. 使用numpy.dot(a,b)

numpy.dot(a,b)才是真正意义上的 矩阵相乘

参考

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)

operands could not be broadcast together with shapes解决方案

plt.legend()的几种用法

Matplotlib入门-3-plt.gca( )挪动坐标轴

matplotlib入门之折线图跟常用基本函数

matplotlib绘图:figure和axes有什么区别?

python matplotlib.pyplot画矩形图 以及plt.gca()

python可视化50最常用12个变化(Change)关系图 – 知乎 (zhihu.com)

Matplotlib可视化最有价值的50张图表

https://www.cnblogs.com/czz0508/category/1392246.html

Original: https://blog.csdn.net/weixin_42322206/article/details/124169539
Author: 王同学加油
Title: Matplotlib图形绘制

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

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

(0)

大家都在看

  • Python 数据分析5:Pandas DataFrame数据的合并、分组聚合

    数据合并 df1.join(df2) 把行索引相同的数据合并到一起,缺少的填NaNdf1.merge(df3, on=’a’) 相当于SQL中的连表查询,按…

    Python 2023年8月16日
    056
  • 【从小白开始学python系列九】数值运算(附水仙花案例)

    关于数值运算呢,就要说到运算符的使用。 1、算数运算符 因为是整数,所以也可以进行数学中的基本运算。 算数运算符是运算符的一种算是完成基本的算数运算使用的符号,用来处理四则运算。 …

    Python 2023年11月9日
    059
  • Anaconda环境离线迁移_CondaPackError处理

    在使用Python进行程序开发时,避免不了使用各类的Python包,以最大限度地通过复用模块来减少我们手动编写的代码量,使我们能够更加专注于主体业务逻辑相关的核心代码。谈到Pyth…

    Python 2023年9月9日
    035
  • ImportError: cannot import name ‘Bar’ from ‘pyecharts’

    第一步,先确认运行的py文件名称是否为pyecharts.py,如果是,先换个文件名。再运行改过名称后的py文件,不成功就继续往下看。 第二步,在cmd输入pip list,查看当…

    Python 2023年6月10日
    097
  • 计算机视觉——期末复习(简答题)

    1、计算机视觉与机器视觉的区别 计算机视觉是利用计算机实现人的视觉功能,即对客观世界中三维场景的感知、加工、解释,侧重于场景分析和图像解释的理论和方法,而机器视觉更关注通过视觉传感…

    Python 2023年10月10日
    065
  • FLASK+VUE–前后端分离(一)- Flask基础讲解之路由、视图函数—-注册登录代码实现

    FLASK+VUE–前后端分离(一)- Flask基础讲解之路由、视图函数及代码实现FLASK+VUE–前后端分离(二)- VUE基础安装及项目的简易介绍FLASK+VUE–前后端…

    Python 2023年8月9日
    099
  • Django的runserver部署和uwsgi部署对比

    查了很多资料都说Django的runserver不适合生产环境部署,具体的原因并没有查到,目前可以得出的结论是runserver运行默认是多线程的可以支持一定量的并发,但是Djan…

    Python 2023年8月6日
    075
  • (零二)Flask有手就行——动态路由

    零、前言 上篇文章,我们介绍了成功了入门了Flask。本篇文章,我们介绍 Flask动态路由。 ; 一、动态路由 首先,我们创建一个普通的 book页面 from flask im…

    Python 2023年8月15日
    053
  • Pytest断言使用

    assert断言方法 异常断言Excepiton 检查断言装饰器 Pytest使用的断言是使用 python内置的断言assert。Python assert(断言)用于判断一个表…

    Python 2023年9月13日
    071
  • 【python】matplotlib模块

    重点研究matplotlib在量化投资中的应用 文章目录 1.安装 2.介绍 3.基本图表绘制 * 3.1 单图绘制 3.2 多图绘制 4. 绘制K线图 * 4.1 安装tusha…

    Python 2023年8月31日
    056
  • 拯救pandas计划(24)——数据框形状的转换:​列转行,行转列

    拯救pandas计划(24)——数据框形状的转换:​列转行,行转列 * – / 数据需求 – / 需求拆解 – / 总结 最近发现周围的很多小伙…

    Python 2023年8月7日
    067
  • 深度学习的通道到底是什么?有什么用?(小白可看)

    目录 1.什么是通道? 1.输入通道数等于卷积核通道个数 2.卷积核个数 等于 输出通道个数 2.为什么要增加通道 3.补充 1.什么是通道? 计算机在存储图片时是以数字矩阵的形式…

    Python 2023年9月7日
    046
  • 4、JDK相关设置

    文章目录 4、JDK相关设置 * 4.1 设置项目的JDK 4.2 设置编译版本 4.3 设置out目录 【尚硅谷】idea实战教程-讲师:宋红康 生活是属于每个人自己的感受,不属…

    Python 2023年11月4日
    068
  • Pytest框架测试用例规则和运行方式

    目录 一、默认的测试用例规则 二、测试用例执行顺序 三、测试用例运行方式 3.1.主函数模式 3.1.1.主函数模式:4种运行方式 3.1.2.文件框架如下图 3.2.命令行模式 …

    Python 2023年9月12日
    070
  • 结构体嵌套函数指针

    这次来记录一下结构体嵌套函数指针 这个知识点想了2天终于搞懂了。 先看代码,试着理解一下,不理解再看我后面的解释。 解释: 首先,和平常创建一个结构体一样,唯独不同的就是里面的变量…

    Python 2023年9月29日
    065
  • 做题笔记2

    [GYCTF2020]FlaskApp 有一个base64的加密和解密,提示没有任何用处 在解密的地方输入没有base64加密的字符,会报错 里面有一部分源码 加密后的字符经过wa…

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