python绘图——坐标轴
1. 2D坐标轴
1.1 绘制简单的曲线
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,50)#-1到1中画50个点
y=x**2
plt.plot(x,y,color='green')
plt.tick_params(axis='x',colors='blue')
plt.tick_params(axis='y',colors='red')
plt.show()
作图:
1.2 坐标轴的刻度线向内
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,50)#-1到1中画50个点
y=x**2
# 下面两行代码要放在plt.plot的前面
plt.rcParams['xtick.direction'] = 'in'#将x轴的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'#将y轴的刻度线方向设置向内plt.plot(x,y,color='green')
plt.tick_params(axis='x',colors='blue')
plt.tick_params(axis='y',colors='red')
plt.show()
1.3 将坐标刻度从整0开始
plt.margins(x=0)
plt.margins(y=0)#设置坐标轴范围
#plt.ylim([0,0.8])
#plt.xlim([0,0.75])
1.4 设置刻度栅格
简单的刻度:
plt.grid()
主刻度和次刻度
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(17,3))
ax = plt.gca()
ax.xaxis.set_major_locator(plt.MultipleLocator(0.2)) #设置x轴主刻度
ax.xaxis.set_minor_locator(plt.MultipleLocator(0.04)) #设置x轴次刻度
ax.yaxis.set_major_locator(plt.MultipleLocator(0.5)) #设置x轴次刻度
ax.yaxis.set_minor_locator(plt.MultipleLocator(0.1)) #设置x轴次刻度
ax.grid(which='major',axis="both",linewidth=0.75,linestyle='-',color='r')
ax.grid(which='minor',axis="both",linewidth=0.25,linestyle='-',color='r')
x=np.linspace(0,3*np.pi,50)#-1到1中画50个点
y=2*np.sin(x)
plt.plot(x,y)
plt.margins(x=0)
plt.margins(y=0)
plt.show()
下面的图形类似于心电图纸绘制,关于心电图相关的绘制,具体在使用python绘制心电图中体现:
1.5 不显示坐标
只是坐标刻度不可见,两种方式的效果一样
# plt.xticks([])
plt.yticks([])# 或者下面的
# frame.axes.get_xaxis().set_visible(False) # x 轴不可见
frame.axes.get_yaxis().set_visible(False) # y 轴不可见
关闭两者坐标轴,只有曲线图形
plt.axis('off')
1.6 坐标值
为坐标设置刻度值, 并且将刻度值旋转45度
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2,50)#-1到1中画50个点
y=x**2
plt.rcParams['xtick.direction'] = 'in'#将x轴的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'#将y轴的刻度线方向设置向内
ax = plt.gca()
xlabel=[str(val)+'_1' for val in range(100,110)]
ax.set_xticklabels(xlabel)
plt.xticks(rotation = 45)
plt.plot(x,y,color='green')
plt.tick_params(axis='x',colors='blue')
plt.tick_params(axis='y',colors='red')
plt.margins(x=0)
plt.margins(y=0)
plt.show()
1.7 绘制横线和竖线
plt.axvline(1)
plt.axhline(1.5)
1.8 设置坐标点的颜色
下图中设置y轴第3个坐标值的颜色为黄色,x轴第6个坐标值颜色为绿色。
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2,50)#-1到1中画50个点
y=x**2
plt.rcParams['xtick.direction'] = 'in'#将x轴的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'#将y轴的刻度线方向设置向内
ax = plt.gca()
plt.plot(x,y,color='green')
plt.tick_params(axis='x',colors='blue')
plt.tick_params(axis='y',colors='red')
ax.get_yticklabels()[3].set_color("y")
ax.get_xticklabels()[6].set_color("g")
plt.show()
1.9 双坐标
代码如下:
import numpy as np
import matplotlib.pyplot as pltt = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)fig, ax1 = plt.subplots()color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axiscolor = 'tab:blue'
ax2.set_ylabel('sin', color=color) # we already handled the x-label with ax1
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)fig.tight_layout() # otherwise the right y-label is slightly clipped
plt.show()
2. 3D坐标轴
2.1 绘制3D散点图
关键代码ax.scatter(xs, ys, zs, c=c, marker=m)
,输入数据xs,ys,zs是相同长度的一维数据。c是颜色,marker是散点类型。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
def randrange(n, vmin, vmax):return (vmax - vmin)*np.random.rand(n) + vmin
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')n = 100
for c, m, zlow, zhigh in [('r', '*', -10, 20), ('b', 'o', -30, -10)]:xs = randrange(n, 23, 32)ys = randrange(n, 0, 100)zs = randrange(n, zlow, zhigh)ax.scatter(xs, ys, zs, c=c, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
2.2 绘制3D曲面图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Dfig=plt.figure(num=1,figsize=(8,6))
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
# height value
Z = np.cos(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'),edgecolors='white')
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))#投影等高线,改变zdir='x', offset=-4实现投影到不同坐标轴
ax.set_zlim(-2, 2)
ax.tick_params(axis='x',colors='g')
ax.tick_params(axis='y',colors='g')
ax.tick_params(axis='z',colors='g')
plt.show()
2.3 绘制3D柱形图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cmX=np.arange(0, 9, step=1)#X轴的坐标
Y=np.arange(0, 10, step=1)#Y轴的坐标
arr = [[np.random.randint(1,50) for i in range(9)] for i in range(10)]
Z = np.array(arr)xx, yy=np.meshgrid(X, Y)#网格化坐标
X, Y=xx.ravel(), yy.ravel()#矩阵扁平化
bottom=np.zeros_like(X)#设置柱状图的底端位值
Z=Z.ravel()#扁平化矩阵width=height=0.8#每一个柱子的长和宽
#绘图设置
fig=plt.figure()
ax=fig.gca(projection='3d')#三维坐标轴
ax.bar3d(X, Y, bottom, width, height, Z, shade=True,color='lightgreen')#
#坐标轴设置
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
引用
[1]Matplotlib 文档
[2]python绘制三维图
[3]python-绘制3D柱形图
[4]Python + matplotlib更改纵横坐标刻度颜色
[5]Python绘图总结(Matplotlib篇)之坐标轴及刻度
python绘图——坐标轴相关推荐
- python 绘图 坐标轴范围 颜色 保存
1.设置坐标轴取值范围 # 设置每个坐标轴的取值范围 ax.axis([0, 1100, 0, 1100000]) 隐藏坐标轴 ax.get_xaxis().set_visible(False) ax ...
- Python绘图(一):坐标轴刻度及范围设置
python绘图一般使用matplotlib.pandas等,本示例使用matplotlib进行简单的python绘图的坐标轴设置 1 定义坐标轴字体 plt.rc('font',family='Ti ...
- python绘图时,坐标轴负号显示不出来
问题描述 python绘图中,坐标轴负号不能正常显示 解决方案: **使用如下代码即可正常显示:** import matplotlib matplotlib.rcParams['axes.unico ...
- python绘图时,取消坐标轴的科学计数法显示python绘图模板总结
python绘图,横坐标范围比较大,一百万吧,然后自动就变成了科学计数的形式 然后某大神给出来的解决办法: ax.get_xaxis().get_major_formatter().set_scien ...
- python绘图模块pandas_python绘图:matplotlib和pandas的应用
在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库. 1.matplotlib库的应用 准备工作如下:打开ipython ...
- python绘图—— matplotlib
python绘图-- matplotlib 1.模块导入 2.折线图绘制 2.1 设置画布大小 2.2画图 2.3 设置显示中文 2.4 设置标题 2.5 设置图例 2.6 设置坐标轴刻度和刻度标签 ...
- python plot 坐标轴范围_Python-Matplotlib 15 坐标轴范围
原博文 2017-02-22 10:52 − Python-Matplotlib 15 坐标轴范围 EG1 import numpy as np import matplotlib.pyplot as ...
- python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
为什么需要加星标? 由于微信公众号出现了 "乱序" 排列的状况,也就是说:文章不会按照 "时间顺序" 推送给你.那么朋友们就不能第一时间,收到我的干货.因此希望 ...
- python绘图坐横坐标轴显示
python matplotlib绘图 --使横坐标轴显示指定内容 在python 绘图的时候直接plot会出现横坐标轴显示为浮点数得情况. 举个栗子: 使用代码: import matplotlib ...
- Python绘图基础:认识绘图区 + subplot创建子图
本小白在用 Python 绘制图形的时候发现可以利用多种代码来完成相同的图形的绘制,今天就给大家分享自己在利用 Python 绘图过程中总结的思路. 话不多说,直接开始 !!! 一.认识绘图区 在绘制 ...
最新文章
- 如何修改select的样式
- 融合变形三维插件想法
- 【已解决】ReferenceError: $ is not defined
- oracle跳过undo回滚段启动,[Oracle] 解析在没有备份的情况下undo损坏怎么办
- sqlserver 分组合并列_【双11秒杀】帕克96分阿根廷一级名庄鼎尖单一园马尔贝克...
- 一个没暂时没有办法实现的问题和一个有意思的小问题!
- iOS:xxx referenced from
- EmptyRecycle() 清空回收站
- Python3-环境篇-01-Python3安装
- 菜鸟教程 程序员学习网站
- 刘万祥老师讲如何利用条件格式色阶制作数据地图
- 易基因 - 外泌体let-7d-3p和miR-30d-5p作为宫颈癌及其癌前病变无创筛查的诊断标志物|早期筛查
- 【NUC980开发板DIY项目大挑战】串口服务器
- scau 18967 六一儿童节
- 打开bat文件闪退以及‘java‘不是内部或外部命令,也不是可运行的程序或批处理文件【本人亲测解决方法】
- 环信IM快速集成集成,实现客服功能(单聊)
- 复数,通往真理的最短路径
- 《Mysql是怎样运行的》读书笔记之独立表空间结构
- 招聘ABAP开发程序员
- 复旦大学软件工程电子信息考研信息