Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用subplot2grid自定义子地块中的每个轴?_Python_Axis_Date Formatting_Subplot - Fatal编程技术网

Python 如何使用subplot2grid自定义子地块中的每个轴?

Python 如何使用subplot2grid自定义子地块中的每个轴?,python,axis,date-formatting,subplot,Python,Axis,Date Formatting,Subplot,我正在用我编写的csv文件运行一些测试,代码如下 import matplotlib.pyplot as plt import pandas as pd from matplotlib import dates as mpl_dates data = pd.read_csv('teste_csvread_panda.csv') data['date'] = pd.to_datetime(data['date']) data.sort_values('date', inplace=True) d

我正在用我编写的csv文件运行一些测试,代码如下

import matplotlib.pyplot as plt
import pandas as pd
from matplotlib import dates as mpl_dates

data = pd.read_csv('teste_csvread_panda.csv')
data['date'] = pd.to_datetime(data['date'])
data.sort_values('date', inplace=True)
date = data['date']
temp = data['temp']
sal = data['sal']

ax1 = plt.subplot2grid((2,1), (0,0), rowspan=1, colspan=1)
ax2 = plt.subplot2grid((2,1), (1,0), rowspan=1, colspan=1)

ax1.plot(date,temp, marker='.', label='temp')
ax1.legend(loc='upper right')
date_format = mpl_dates.DateFormatter('%b %d')
plt.gca().xaxis.set_major_formatter(date_format)

ax2.plot(date,sal, marker='.', label='sal')
ax2.legend(loc='lower left')
plt.gca().xaxis.set_major_formatter(date_format)

plt.show()
结果图

我想为两个子地块设置日期轴的格式,但显然它只对最后一个子地块有效。我怎样才能做到这一点


提前谢谢你。

这应该行得通。您需要定义哪个轴是当前轴。我使用
plt.sca(ax)
在每个绘图的开始处这样做

ax1=plt.subplot2grid((2,1)、(0,0),rowspan=1,colspan=1)
ax2=plt.subplot2grid((2,1)、(1,0),rowspan=1,colspan=1)
plt.sca(ax1)
plt.plt(日期、温度、标记='、标签='temp')
plt.图例(位置='右上')
日期\u格式=mpl\u日期。日期格式化程序(“%b%d”)
plt.gca().xaxis.set_major_格式化程序(日期格式)
plt.sca(ax2)
plt.plot(日期,sal,标记='',标签='sal')
plt.图例(位置=左下角)
plt.gca().xaxis.set_major_格式化程序(日期格式)
plt.show()

@ThiagoCaminha您能接受答案吗?非常感谢。