20

My code

import matplotlib.pyplot as plt
plt.style.use("ggplot")
import numpy as np
from mtspec import mtspec
from mtspec.util import _load_mtdata

data = np.loadtxt('262_V01_C00_R000_TEx_BL_4096H.dat')

spec,freq,jackknife,f_statistics,degrees_of_f = mtspec(data=data, delta= 4930.0, time_bandwidth=4 ,number_of_tapers=5, nfft= 4194304, statistics=True)


fig = plt.figure()      
ax2 = fig   
ax2.plot(freq, spec, color='black')
ax2.fill_between(freq, jackknife[:, 0], jackknife[:, 1],color="red", alpha=0.3)
ax2.set_xlim(freq[0], freq[-1])
ax2.set_ylim(0.1E1, 1E5)
ax2.set_xlabel("Frequency $")
ax2.set_ylabel("Power Spectral Density $)")
plt.tight_layout()
plt.show() 

The problem is with the plotting part of my code.What should I change?I am using Python 2.7 on Ubuntu.

2 Answers 2

17

You assign ax2 to a figure object which doesn't have a plot method defined. You want to create your axes using plt.axes instead

ax2 = plt.axes()
# Instead of ax2 = fig
Sign up to request clarification or add additional context in comments.

Comments

13

instead of calling the figure with:

ax2 = fig #which just references the figure

try using gca() to extract the axes:

ax2 = fig.gca() #which is used to extract the axes

1 Comment

gca stands for "get current axis"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.