Мне нужно построить таблицу рядом с графиком, и количество строк не фиксировано, я имею в виду, что иногда у меня будет 2 строки, а иногда 5 или более строк. Сказав это, мне нужно построить таблицу, которая «умещается» по количеству строк для каждой ситуации. Мой вопрос: как исправить высоту строки таблицы, а также увеличить размер таблицы в зависимости от количества строк? т.е. для каждой новой строки высота таблицы увеличивается. Следуйте за изображением, которое БПФ с одним пиком - таблица с 2 строкамиБПФ с четырьмя пиками - таблица с 5 строками Следуйте моему коду ниже:
import numpy as np
import scipy
import matplotlib.pyplot as plt
from pylab import *
import peakutils
a =0.5
#a =input("entre com o limite: ")
# Number of samplepoints
N = 600
# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y1 = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)+ 0.7*np.sin(30.0 * 2.0*np.pi*x)+ 0.5*np.sin(10.0 * 2.0*np.pi*x)
#yf1 = scipy.fftpack.fft(y1)
yf1 = np.fft.fft(y1)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
v1 = 2.0/N * np.abs(yf1[:N//2])
# Find peaks
indexes = peakutils.indexes(v1, thres = a , min_dist=1,thres_abs= True)
columns = ('Freq (Hz)','Amplitude')
table_vals = np.column_stack((xf[indexes],v1[indexes]))
table_vals = np.around(table_vals,decimals=2)
print table_vals
plt.figure(1)
plt.plot(xf,v1)
plt.scatter(xf[indexes],v1[indexes],color ='r')
plt.table(cellText= table_vals, colLabels=columns, rowLoc = 'right',colLoc='right',
colWidths = [0.3,0.3],bbox=[1.05,0.5,0.5,0.5],cellLoc = 'right')
plt.subplots_adjust(right=0.65)
#plt.subplots_adjust(bottom=0.3)
plt.xlabel('Freq(Hz)')
plt.ylabel('Amplitude')
plt.grid()
plt.show()
Спасибо за ответ. Вы знаете, как выровнять таблицу с графиком? Я имею в виду, в зависимости от количества строк таблица идет вверх или вниз ...
Не уверен, что вы имеете в виду. Вы попробовали мое предложение?
Ваше предложение сработало очень хорошо ... У меня больше нет проблем с размером таблицы и строк. Теперь у меня проблема с расположением таблицы, я имею в виду, что в зависимости от того, сколько строк имеет таблица, положение таблицы меняется от одного случая к другому .... когда у меня больше строк (например, 6 строк или более ), Я не вижу первые строки таблицы.
Я думаю, вы имеете в виду обратное? А именно, что позиция остается прежней, но вы хотите ее изменить? Например. вы можете установить его так, чтобы значение y было равно 1 высоте, чтобы он выглядел так, как будто он закреплен сверху.
Точно. Вы знаете, как я могу это сделать?
Как сказано, если высота стола, например, 0.1*table_vals.shape[0], тогда позиция таблицы может быть установлена на 1.0 - 0.1*table_vals.shape[0].






Последнее число в
bbox(здесь0.5) - это высота стола. Вы можете сделать это пропорционально количеству строк. В простейшем случае, например,0.1*table_vals.shape[0].