# 1创建2个图形区域,一个叫做green,大小是16,8,一个叫做red,大小是10,6
# 2绿色区域画一条绿色的正弦曲线,红色区域化两条线,一条是绿色的正弦曲线,一条是红色的余弦曲线
# 3在green的绿色的正弦曲线上,把sin(π/6)=1/2这个公式参照课件中的标注方式进行标注
# 4坐标轴的刻度分别是x:-π,-π/2,π/2,π y:-1,-0.5,0,0.5,1
# 5坐标轴的交点要求在原点坐标,设置坐标轴,隐去右边线和上边线,将下边线和左边线设置为原点
# 6将图例设置显示并放在图形的右上方
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator # 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决无法显示负号
plt.rcParams['axes.unicode_minus'] = False #1
plt.figure(figsize=(30,10))
rect1 = [1/30, 1/10, 16/30, 8/10] # [左, 下, 宽, 高] 规定的矩形区域 (全部是0~1之间的数,表示比例)
rect2 = [18/30, 1/10, 10/30, 6/10]
green = plt.axes(rect1)
red = plt.axes(rect2)
# plt.show() #2
x1 = np.linspace(0.0, 8.0)
x2 = np.linspace(0.0, 5.0)
x3 = np.linspace(0.0, 5.0)
y1=np.sin(x1)
y2=np.cos(x2)
y3=np.sin(x3)
green.plot(x1, y1, color='green', ms=3, label="y=sin(x)")
red.plot(x3, y3, color='green', ms=3,label="y=sin(x)")
red.plot(x2, y2, color='red', ms=3,label="y=cos(x)")
# plt.show() #3
#r'$xxxx$'
#xy=标注点位置
#xytext:描述框相对xy位置
#textcoords='offset points',以xy为原点偏移xytext
#arrowprops = 画弧线箭头,'---->', rad=.2-->0.2弧度
green.annotate(r'$sin(π/6)=1/2$',xy=(np.pi/6,1/2),xytext=(+30,-30),textcoords='offset points',fontsize=16,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
# plt.show() #4
x_major_locator=MultipleLocator(np.pi/2)
y_major_locator=MultipleLocator(1/2)
green.xaxis.set_major_locator(x_major_locator)
green.yaxis.set_major_locator(y_major_locator)
red.xaxis.set_major_locator(x_major_locator)
red.yaxis.set_major_locator(y_major_locator)
# plt.show() #5
green.spines['top'].set_visible(False)
green.spines['right'].set_visible(False)
green.spines['bottom'].set_position(('data',0))#data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置
green.spines['left'].set_position(('data',0))#data表示通过值来设置y轴的位置,将y轴绑定在x=0的位置
red.spines['top'].set_visible(False)
red.spines['right'].set_visible(False)
red.spines['bottom'].set_position(('data',0))#data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置
red.spines['left'].set_position(('data',0))#data表示通过值来设置y轴的位置,将y轴绑定在x=0的位置
# plt.show() #6
green.legend(loc='upper right')
red.legend(loc='upper right')
plt.show()

【机器学习】matplotlib库练习-函数绘图的更多相关文章

  1. Matplotlib库常用函数大全

    Python之Matplotlib库常用函数大全(含注释) plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test plt.ylabel(‘Gr ...

  2. python 利用matplotlib中imshow()函数绘图

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...

  3. 利用matplotlib中imshow()函数绘图

    matplotlib  是Python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图 ...

  4. 机器学习 Matplotlib库入门

    2017-07-21 15:22:05 Matplotlib库是一个优秀的python的数据可视化的第三方类库,其中的pyplot支持了类似matlab的图像输出操作.matplotlib.pyplo ...

  5. Liunx环境下配置matplotlib库使用中文绘图

    最近在使用matplotlib库的过程中需要用到中文绘图,在网上找了好多种方法,最终用一种方法解决了,在此记录. 首先Linux是有自己的中文字体的,叫做"Droid Sans Fallba ...

  6. Python之Matplotlib库常用函数大全(含注释)

    plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test plt.ylabel(‘Grade’) :  y轴的名称 plt.axis([-1, 1 ...

  7. 使用matplotlib库绘制函数图

    函数如下: z = x^2 * y / (x^4 +y^2) 代码如下: import numpy as np import matplotlib.pyplot as plt import mpl_t ...

  8. 转:使用 python Matplotlib 库 绘图 及 相关问题

     使用 python Matplotlib 库绘图      转:http://blog.csdn.net/daniel_ustc/article/details/9714163 Matplotlib ...

  9. Python基础——matplotlib库的使用与绘图可视化

    1.matplotlib库简介: Matplotlib 是一个 Python 的 2D绘图库,开发者可以便捷地生成绘图,直方图,功率谱,条形图,散点图等. 2.Matplotlib 库使用: 注:由于 ...

随机推荐

  1. day08 外键字段的增删查改

    day08 外键字段的增删查改 今日内容概要 外键字段的增删查改 正反向查询的概念 基于对象的跨表查询(子查询) 基于双下划线的跨表查询(连表操作) 聚合查询与分组查询 F查询和Q查询 前提准备 cl ...

  2. 纯CSS圆环与圆

    1. 两个标签的嵌套: <div class="element1"> <div class="child1"></div> ...

  3. oralce 存储过程传入 record 类型的参数?

    先定义一个 package , package中含有一个 record 类型的变量 create or replace package pkg_record is type emp_record is ...

  4. keepalived 高可用lvs的dr模型(vip与dip不在同一网段)

    现在rs1和rs2上面安装httpd并准备测试页 [root@rs1 ~]# yum install httpd -y [root@rs1 ~]# echo "this is r1" ...

  5. SSM和springboot对比

    今天在开源中国上看到一篇讲SSM.SpringBoot讲的不错的回答,分享! https://www.oschina.net/question/930697_2273593 一.SSM优缺点应该分开来 ...

  6. AJAX - Http 中 post 和 get 的区别

    HTTP: post 和 get 是 HTTP 协议中的两种方法.浏览器和服务器的交互是通过 HTTP 协议执行的,他的全称为Hyper Text Transfer Protocol(超文本传输协议) ...

  7. 【C/C++】拔河比赛/分组/招商银行

    题目:小Z组织训练营同学进行一次拔河比赛,要从n(2≤n≤60,000)个同学中选出两组同学参加(两组人数可能不同).对每组同学而言,如果人数超过1人,那么要求该组内的任意两个同学的体重之差的绝对值不 ...

  8. 【C/C++】字符数组:char,char*,char a[], char *a[], char **s 的区别与联系/const char*和char*的区别

    一.char,char*,char a[], char *a[], char **s 的区别与联系 C语言中的字符串是字符数组,可以像处理普通数组一样处理字符串. 可以理解为在内存中连续存储的字符. ...

  9. 【科研工具】MathType7.2的安装破解与使用

    亲测可用,可以嵌入word. [我们为什么要用MathType] tex不香嘛,但是学校给的模板只有word,word输入公式点起来实在是太麻烦了. 有了这个就可以直接输入公式转换啦. [安装破解教程 ...

  10. 『学了就忘』Linux服务管理 — 79、源码包安装的服务管理

    目录 1.源码包服务的启动管理 2.源码包服务的自启动管理 3.让源码包服务被服务管理命令识别 1.源码包服务的启动管理 # 通过源码包的安装路径,找到该服务的启动脚本, # 也就是获得该服务的启动脚 ...