-
python matplotlib主副坐标轴
2018-11-28 15:00:15在excel画图中经常会使用...matplotlib画图针对这种场景需解决方如下: import numpy as np from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus...在excel画图中经常会使用到两个数据放在一个图上,共用x轴两个y轴分别位于两侧。
matplotlib画图针对这种场景需解决方如下:
import numpy as np from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False x=np.arange(0.1,10,0.01) data1=np.exp(x) data2=np.log(x) fig,ax1=plt.subplots() #subplots一定要带s ax1.plot(x,data1,c='r') ax1.set_ylabel('EXP') ax2=ax1.twinx() #twinx将ax1的X轴共用与ax2,这步很重要 ax2.plot(x,data2,c='g') ax2.set_ylabel('Log') plt.show()
-
matplotlib调整坐标轴最小刻度单位,坐标轴主副刻度单位
2020-05-22 10:24:08设置最小的刻度,比如刻度为3,而不去设置坐标轴的范围,也是有时候的一些需求。 fig, ax = plt.subplots(1, 1) ax.plot(range(12), range(12)) ax.xaxis.set_major_locator(plt.MultipleLocator(3)) # #把x轴的...设置最小的刻度,比如刻度为3,而不去设置坐标轴的范围,也是有时候的一些需求。
fig, ax = plt.subplots(1, 1) ax.plot(range(12), range(12)) ax.xaxis.set_major_locator(plt.MultipleLocator(3)) # #把x轴的主刻度设置为3的倍数 ax.yaxis.set_major_locator(plt.MultipleLocator(4)) # #把y轴的主刻度设置为4的倍数
下面的按需取用,
ax.xaxis.set_major_formatter(plt.FormatStrFormatter('%5.2f')) # 设置 刻度标签 显示格式 不是坐标轴标签 plt.xlim(-0.5,11) #把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白 plt.ylim(-5,110) #把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白 ax.set_xscale('linear') # log # 设置坐标轴 为线性还是 对数等。
-
matplotlib命令与格式:tick坐标轴主副刻度设置
2017-12-06 23:52:261.刻度定位器与格式(Tick Locator) Tick locating 与 Tick formatting 可...Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(f1.刻度定位器与格式(Tick Locator)
Tick locating 与 Tick formatting 可参考官方文档:http://matplotlib.org/api/ticker_api.html2.获取坐标轴刻度对象
Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(formatter)等。ax.xaxis.get_major_ticks()ax.xaxis.get_minor_ticks()ax.xaxis.get_major_locator()ax.xaxis.get_minor_locator()ax.xaxis.get_major_formatter()ax.xaxis.get_minor_formatter()3.设置主副刻度对象属性
(1)设置主副刻度格式import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.ticker import MultipleLocator, FormatStrFormattert = np.arange(0.0, 100.0, 1)s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)ax = plt.subplot(111) #注意:一般都在ax中设置,不再plot中设置plt.plot(t,s,'--r*')#修改主刻度xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数xmajorFormatter = FormatStrFormatter('%5.1f') #设置x轴标签文本的格式ymajorLocator = MultipleLocator(0.5) #将y轴主刻度标签设置为0.5的倍数ymajorFormatter = FormatStrFormatter('%1.1f') #设置y轴标签文本的格式#设置主刻度标签的位置,标签文本的格式ax.xaxis.set_major_locator(xmajorLocator)ax.xaxis.set_major_formatter(xmajorFormatter)ax.yaxis.set_major_locator(ymajorLocator)ax.yaxis.set_major_formatter(ymajorFormatter)#修改次刻度xminorLocator = MultipleLocator(5) #将x轴次刻度标签设置为5的倍数yminorLocator = MultipleLocator(0.1) #将此y轴次刻度标签设置为0.1的倍数#设置次刻度标签的位置,没有标签文本格式ax.xaxis.set_minor_locator(xminorLocator)ax.yaxis.set_minor_locator(yminorLocator)#打开网格ax.xaxis.grid(True, which='major') #x坐标轴的网格使用主刻度ax.yaxis.grid(True, which='minor') #y坐标轴的网格使用次刻度plt.show()(2)删除坐标轴的刻度显示ax.yaxis.set_major_locator(plt.NullLocator())ax.xaxis.set_major_formatter(plt.NullFormatter()) -
matplotlib画图中tick坐标轴日期格式设置主副刻度并标注
2020-03-05 13:15:49日期时间做X轴,设定主副刻度 当X轴为日期时间时,annotate标注功能X轴坐标获取问题,即将x轴所在点的日期时间通过mdates.date2num()转为数字即可。关键代码如下: ax1.annotate("annotate msg ", xy=(mdates.date2...1.解决的问题
- 日期时间做X轴,设定主副刻度
- 当X轴为日期时间时,annotate标注功能X轴坐标获取问题,即将x轴所在点的日期时间通过mdates.date2num()转为数字即可。关键代码如下:
ax1.annotate("annotate msg ", xy=(mdates.date2num(x[1]), sales[1]), xycoords='data', color='red')
2.演示代码
主体代码来源:https://blog.csdn.net/helunqu2017/article/details/78736686,略改
import matplotlib.pyplot as plt import matplotlib.dates as mdates from datetime import datetime import matplotlib as mpl import matplotlib.dates as mdates # 销售数据 dates = [20171101, 20171102, 20171103, 20171104] sales = [102.1, 100.6, 849, 682] # 将dates改成日期格式 x = [datetime.strptime(str(d), '%Y%m%d').date() for d in dates] # figure布局 fig = plt.figure(figsize=(8, 4)) ax1 = fig.add_subplot(1, 1, 1) # 绘图 ax1.plot(x, sales, ls='--', lw=3, color='b', marker='o', ms=6, mec='r', mew=2, mfc='w', label='业绩趋势走向') # 标注 ax1.annotate("annotate msg ", xy=(mdates.date2num(x[1]), sales[1]), xycoords='data', color='red') plt.gcf().autofmt_xdate() # 自动旋转日期标记 # 设置x轴主刻度格式 alldays = mdates.DayLocator() # 主刻度为每天 ax1.xaxis.set_major_locator(alldays) # 设置主刻度 ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m%d')) # 设置副刻度格式 hoursLoc = mpl.dates.HourLocator(interval=6) # 为6小时为1副刻度 ax1.xaxis.set_minor_locator(hoursLoc) ax1.xaxis.set_minor_formatter(mdates.DateFormatter('%H')) # 参数pad用于设置刻度线与标签间的距离 ax1.tick_params(pad=10) # 显示图像 plt.show()
-
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2020-09-18 21:41:11主要介绍了matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
用matplotlib作图时设置了x轴主副刻度,怎样旋转副刻度坐标?
2019-12-19 20:45:27用matplotlib作图时设置了x轴主副刻度,主刻度是年月日,副刻度是时分秒,想把副坐标标签旋转,怎么实现呢? 不旋转的话,坐标值会重叠,用plt.xticks(rotation=90)只能旋转主刻度坐标 ![图片说明]... -
matplotlib命令与格式:tick坐标轴日期格式(设置日期主副刻度)
2020-02-07 11:54:18matplotlib命令与格式:tick坐标轴日期格式(设置日期主副刻度) 原创开码牛 最后发布于2017-12-07 00:02:23 阅读数 17315 收藏 展开 1.横坐标设置时间格式 import matplotlib.pyplot as plt import matplotlib.dates ... -
matplotlib 修改坐标轴刻度值,刻度个数
2019-03-15 16:36:461.刻度定位器与格式(Tick Locator) Tick locating 与 Tick formatting ...Matplotlib 中的 ticker 模块用于支持坐标轴刻度的修改,调用下列命令可以初步查看主副坐标轴刻度的数值定位方式(locator)与具体格式(for... -
python怎么设置坐标指令_matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)...
2020-12-10 12:22:461.横坐标设置时间格式import matplotlib.pyplot as pltimport matplotlib.dates as mdates# 配置横坐标为日期格式plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))plt.gca().xaxis.set_major... -
python 坐标轴刻度 格式_matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)...
2020-12-08 15:07:261.横坐标设置时间格式import matplotlib.pyplot as pltimport matplotlib.dates as mdates# 配置横坐标为日期格式plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))plt.gca().xaxis.set_major... -
共用X轴,主副坐标系
2019-04-28 14:09:20from matplotlib import pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False x=np.arange(0.1,10,0.01) data1=np.exp(x) data2=np.log(x) f... -
Matplotlib:背景设置,栅格设置,自定义坐标轴标签,主副刻度密度的设置,日期标签旋转,文本标注,箭头...
2019-09-24 21:43:30其实就是在设置刻度的基础上,在添加一个列表,来显示...import matplotlib.pyplot as plt import numpy as np # 数据 x = np.linspace(-10, 10, 100) y = x**2 # 绘图 plt.plot(x, y) # 设置轴的刻度 plt.xtic...
收藏数
38
精华内容
15