博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matplotlib学习日记(十一)---坐标轴高阶应用
阅读量:5079 次
发布时间:2019-06-12

本文共 4654 字,大约阅读时间需要 15 分钟。

(一)设置坐标轴的位置和展示形式

(1)向画布中任意位置添加任意数量的坐标轴

'''通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法,与subplot,subplots不同,axes可以完成子区的交错,覆盖和重叠等视图组合ax(rect, frameon, facecolor)的参数的含义rect=[left, bottom, width, height]left------------>左侧边缘距离画布边缘的距离bottom---------->距离底部画布边缘的距离width----------->坐标轴的宽度height---------->坐标轴的高度left和height--------->画布宽度的归一化距离bottom和width-------->画布高度的归一化距离frameon------------>True,绘制坐标轴的四条轴脊facecolor---------->坐标轴背景的颜色'''import matplotlib.pyplot as pltimport numpy as npplt.axes([0.05, 0.7, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")plt.plot(np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="--")plt.axes([0.3, .4, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(2+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="-")plt.axes([0.55, .1, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(4+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle=":")plt.show()

(2)函数axis()--------调整已经确定的坐标轴的显示,隐藏和刻度范围

'''通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法,与subplot,subplots不同,axes可以完成子区的交错,覆盖和重叠等视图组合ax(rect, frameon, facecolor)的参数的含义rect=[left, bottom, width, height]left------------>左侧边缘距离画布边缘的距离bottom---------->距离底部画布边缘的距离width----------->坐标轴的宽度height---------->坐标轴的高度left和height--------->画布宽度的归一化距离bottom和width-------->画布高度的归一化距离frameon------------>True,绘制坐标轴的四条轴脊facecolor---------->坐标轴背景的颜色'''import matplotlib.pyplot as pltimport numpy as npplt.axes([0.05, 0.7, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")plt.plot(np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="--")plt.ylim(0, 1.5)plt.axis("image")plt.axes([0.3, .4, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(2+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="-")plt.ylim(0, 15)plt.axis([2.1, 3.9, 0.5, 1.9])#axis([xmin, xmax, ymin, ymax])plt.axes([0.55, .1, .3, .3], frameon=True, facecolor="y", aspect="equal")plt.plot(4+np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle=":")plt.ylim(0, 1.5)plt.axis("off")#坐标轴的关闭plt.show()

(3)控制坐标轴刻度的显示(一)

 

import matplotlib.pyplot as pltimport numpy as np'''控制坐标轴刻度的显示的两种方法:一是调用matplotlib的面向对象的API的Axes.set_xticks()和Axes.yticks()实例方法,另一种是调用模块pyplot的API,使用函数setp()设置刻度元素'''ax1 = plt.subplot(121)ax1.set_xticks(range(0, 251, 50))plt.grid(True, axis="x")ax2 = plt.subplot(122)ax2.set_xticks([])plt.grid(True, axis="x")plt.show()

(4)调用函数setp()--------实现刻度值的显示

import matplotlib.pyplot as pltimport numpy as np'''控制坐标轴刻度的显示的两种方法:一是调用matplotlib的面向对象的API的Axes.set_xticks()和Axes.yticks()实例方法,另一种是调用模块pyplot的API,使用函数setp()设置刻度元素'''ax1 = plt.subplot(221)plt.setp(ax1.get_xticklabels(), visible=True)plt.setp(ax1.get_xticklines(), visible=True)plt.grid(True, axis="x")ax2 = plt.subplot(222)plt.setp(ax2.get_xticklabels(), visible=True)plt.setp(ax2.get_xticklines(), visible=False)plt.grid(True, axis="x")#刻度线的隐藏ax3 = plt.subplot(223)plt.setp(ax3.get_xticklabels(), visible=False)plt.setp(ax3.get_xticklines(), visible=True)plt.grid(True, axis="x")#刻度标签的隐藏ax4 = plt.subplot(224)plt.setp(ax4.get_xticklabels(), visible=False)plt.setp(ax4.get_xticklines(), visible=False)plt.grid(True, axis="x")#双隐藏plt.show()

(5)棉棒图的定制化展示

import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0.5, 2*np.pi, 20)y = np.random.randn(20)markerline, stemlines, baseline = plt.stem(x, y)#获得实例,前两个实例的属性值的改变用setpplt.setp(markerline, color="chartreuse", marker="D")plt.setp(stemlines, linestyle="-.")#stemlines是实例列表baseline.set_linewidth(2)#基线的位置和线型plt.show()

 

(8)控制坐标轴的显示

import matplotlib.pyplot as pltimport numpy as np'''spines实现轴的显示set_ticks_position实现标签的显示'''x = np.linspace(-2*np.pi, 2*np.pi, 1000)y = np.sin(x)ax1 = plt.subplot(221)ax1.spines["right"].set_color("none")ax1.spines["top"].set_color("none")ax1.set_xlim(-2*np.pi, 2*np.pi)ax1.set_ylim(-1.0, 1.0)plt.title(r"$a$")plt.scatter(x, y, marker="+", color="b")ax2 = plt.subplot(222)ax2.spines["right"].set_color("none")ax2.spines["top"].set_color("none")ax2.xaxis.set_ticks_position("bottom")ax2.set_xlim(-2*np.pi, 2*np.pi)ax2.set_ylim(-1.0, 1.0)plt.title(r"$b$")plt.scatter(x, y, marker="+", color="b")ax3 = plt.subplot(223)ax3.spines["right"].set_color("none")ax3.spines["top"].set_color("none")ax3.yaxis.set_ticks_position("left")ax3.set_xlim(-2*np.pi, 2*np.pi)ax3.set_ylim(-1.0, 1.0)plt.title(r"$c$")plt.scatter(x, y, marker="+", color="b")ax4 = plt.subplot(224)ax4.spines["right"].set_color("none")ax4.spines["top"].set_color("none")ax4.xaxis.set_ticks_position("bottom")ax4.yaxis.set_ticks_position("left")ax4.set_xlim(-2*np.pi, 2*np.pi)ax4.set_ylim(-1.0, 1.0)plt.title(r"$d$")plt.scatter(x, y, marker="+", color="b")plt.show()

 

转载于:https://www.cnblogs.com/ai-bingjie/p/11100188.html

你可能感兴趣的文章
2019/5/7学习日记-变量声明(let、const、var)
查看>>
jvm垃圾回收的过程
查看>>
iPad编程
查看>>
C#实现异步GET的方法
查看>>
JQuery层次选择器
查看>>
linux shell 字符串操作(长度,查找,替换)详解
查看>>
[bug]Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$Pager_input
查看>>
C++多线程の8*2重多线程创建方式
查看>>
948. Bag of Tokens
查看>>
Swift - 使用Core Data进行数据持久化存储
查看>>
IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...
查看>>
Android Application的使用及其生命周期
查看>>
【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇
查看>>
spring ibatis整合
查看>>
光标格式Mac OS X快捷键(2)
查看>>
04Channel 与 ChannelPipeline
查看>>
Java Sax解析xml
查看>>
职业发展思考(二)
查看>>
线程详解
查看>>
ubuntu lfs
查看>>