我想把这两张图画在一起

2024-10-04 15:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是两张图

Text

我想将它们一起绘制(共享相同的x轴),但问题是:右侧的x轴的格式为:年-月(如图所示),而左侧的格式为年-月-日(如2020-03-23)。 如何重新设置轴的格式?i、 e.从年月日起-->;年复一年

下面是第二个图形的日期:来自DataFrame函数

               0
0     2014-11-10
1     2014-11-11
2     2014-11-12
3     2014-11-13
4     2014-11-14
...          ...

下面是2图的代码:1图

data = pd.read_json(r"C:\Users\taibo\Desktop\Solar_Cycle\observed-solar-cycle-indices.json", orient='records')
data2 = pd.DataFrame(data)
ndata = data2[ (data2['time-tag'] > '2014-01') & (data2['time-tag'] < '2020-12')]
x = ndata['time-tag']
y = ndata['ssn']     

第二幅图:

Dose_data = pd.read_csv(r"C:\Users\taibo\Desktop\MSL_Script\Code\Btmp.txt",sep='\s+',header=None,)
Dose_data = pd.DataFrame(Dose_data)
sol_list = Dose_data[0]
def soltodate():
    list = []
    for sols in sol_list:
        landing_date = "12/08/06" #landing date of curiosity
        landing_date_strip = datetime.strptime(landing_date, "%y/%m/%d").date()
        #print(landing_date_strip)
        x = sols*1.0275
        #x = sols to earth day
        sol_to_date = landing_date_strip + timedelta(days=x-1) # plus landing date with number of earth day
        date_list = np.array(sol_to_date)
        list.append(str(date_list))
    return(list)
Dose_date = soltodate()
Dose_date = pd.DataFrame(Dose_date)

Dose_x = new_Dosedate[0]
Dose_y = Dose_data[1]

下面是第一个图形的原始数据:https://services.swpc.noaa.gov/json/solar-cycle/observed-solar-cycle-indices.json 第二:https://drive.google.com/file/d/1GRcjhVVg_S9PU8LJxybR-fnY7Z2kdWUw/view?usp=sharing


Tags: jsondataframedatadatetime格式listpd
1条回答
网友
1楼 · 发布于 2024-10-04 15:26:16

这并不难。只需将其他图表的日期转换为年-月

假设您的日期在一个名为dates的变量中。然后:

new_values = [str(a.year)+'-'+str(a.month) for a in dates]

例如:

from datetime import date, timedelta

sdate = date(2019,3,22)   # start date
edate = date(2019,4,9)   # end date

dates = pd.date_range(sdate,edate-timedelta(days=1),freq='d')

new_values = [str(a.year)+'-'+str(a.month) for a in dates]

print(new_values)

['2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-3', '2019-4', '2019-4', '2019-4', '2019-4', '2019-4', '2019-4', '2019-4', '2019-4']

我希望这能解决你的问题

将日期值设置为此新值后。 只要做:

plt.figure()
plt.plot(data1)
plt.plot(data2)
plt.show()

我希望这能达到目的

相关问题 更多 >

    热门问题