0
나는 2000에서 2050까지의 시계열 데이터를 가지고 있습니다. 기본 플롯 x- 레이블은 10 yr 간격이지만 5 yr 간격으로 변경하고 싶습니다. 시계열 데이터는 팬더 데이터 프레임에 있습니다. 내 문제에 대한 좋은 해결책을 찾을 수 없다.python x 축 레이블 주파수 조정
여기 내 데이터입니다 :
여기내 코드입니다 :
years = dates.YearLocator()
yearsFmt = dates.DateFormatter('%Y')
datemin = 2000
datemax = 2050
a,b = 2010, 2050
d = {}
for j in range(35,40):
d[j] = pd.read_csv('Averages_SWB_Run' + str(j) + '.csv', skiprows=[0])
print
#Convert data['Year'] from string to datetime
pd.to_datetime(pd.Series(d[j]['Year']), format='%Y')
#Set data['Year'] as the index and delete the column
d[j].index = d[j]['Year']
del d[j]['Year']
d[j]
my_labels = ('Base2000s','Base Forecast','Climate Forecast 1 (GFDL)','Climate Forecast 2 (MRI)', 'Landuse Forecast 1', 'Landuse Forecast 2')
my_colors = ('black', 'black', 'red', 'green', 'cyan', 'goldenrod')
my_markers = ('o', 'o', '', '', '', '')
ax = d[j]['ET'].plot(title='Northern High Plains Aquifer: Evapotranspiration',marker=my_markers[j-34], markersize=2, color=my_colors[j-34], label=my_labels[j-34], figsize=(8, 6))
#ax1 = d[j]['ET'].plot(title='Northern High Plains Aquifer: Evapotranspiration', label='ET, Run'+ str(j))
ax.set_ylabel('Average annual evaptranspiration, in inches per year')
ax.set_ylim(0,25)
lines = ax.get_lines()
#my_labels = ['Base2000s','Base','GFDL','MRI', 'A2', 'B2']
ax.legend(lines, [line.get_label() for line in lines], loc='best')
#shading
ax.axvspan(a,b, color = 'lightgray')
txtbox = 'Gray shading represents future forecasts'
ax.text(0.5, 0.1, txtbox, ha='left', va='top',transform=ax.transAxes, fontsize=10)
ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.set_xlim(datemin, datemax)
figET = ax.get_figure()
figET.savefig('ET.jpg', dpi=300)
그런데 어떻게 CSV 파일의 데이터를 질문에 게시합니까? 나는 시도했다. 그러나 그것은 매우 좋게 보지 않았다. – jpspeeddemon
'years = dates.YearLocator (5)'와 같이'5 '인수를 전달하려고 시도 했습니까? – bernie
예, 아무것도하지 않았으며 오류도 발생하지 않았습니다. – jpspeeddemon