У меня есть проблема (с моей ОЗУ) здесь: она не может хранить данные, которые я хочу построить. У меня достаточно места для HD. Есть ли какое-либо решение, чтобы избежать "затенения" моего набора данных?
Конкретно я занимаюсь цифровой обработкой сигналов, и мне приходится использовать высокий уровень выборки. Моя инфраструктура (GNU Radio) сохраняет значения (во избежание использования большого количества дискового пространства) в двоичном формате. Я распакую его. Впоследствии мне нужно заговорить. Мне нужен сюжет, масштабируемый и интерактивный. И это проблема.
Есть ли какой-либо потенциал оптимизации для этого или другой язык программирования/программирования (например, R или около того), который может обрабатывать большие наборы данных? На самом деле я хочу получить гораздо больше данных на своих сюжетах. Но у меня нет опыта работы с другим программным обеспечением. GNUplot терпит неудачу, с аналогичным подходом к следующему. Я не знаю R (jet).
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import struct
"""
plots a cfile
cfile - IEEE single-precision (4-byte) floats, IQ pairs, binary
txt - index,in-phase,quadrature in plaintext
note: directly plotting with numpy results into shadowed functions
"""
# unpacking the cfile dataset
def unpack_set(input_filename, output_filename):
    index = 0   # index of the samples
    output_filename = open(output_filename, 'wb')
    with open(input_filename, "rb") as f:
        byte = f.read(4)    # read 1. column of the vector
        while byte != "":
        # stored Bit Values
            floati = struct.unpack('f', byte)   # write value of 1. column to a variable
            byte = f.read(4)            # read 2. column of the vector
            floatq = struct.unpack('f', byte)   # write value of 2. column to a variable
            byte = f.read(4)            # next row of the vector and read 1. column
            # delimeter format for matplotlib 
            lines = ["%d," % index, format(floati), ",",  format(floatq), "\n"]
            output_filename.writelines(lines)
            index = index + 1
    output_filename.close
    return output_filename.name
# reformats output (precision configuration here)
def format(value):
    return "%.8f" % value            
# start
def main():
    # specify path
    unpacked_file = unpack_set("test01.cfile", "test01.txt")
    # pass file reference to matplotlib
    fname = str(unpacked_file)
    plt.plotfile(fname, cols=(0,1)) # index vs. in-phase
    # optional
    # plt.axes([0, 0.5, 0, 100000]) # for 100k samples
    plt.grid(True)
    plt.title("Signal-Diagram")
    plt.xlabel("Sample")
    plt.ylabel("In-Phase")
    plt.show();
if __name__ == "__main__":
    main()
Что-то вроде plt.swap_on_disk() может кэшировать вещи на моем SSD;)















