Использование matplotlib Polycollection для построения данных из файлов csv

Я пытаюсь сделать диаграмму с использованием PolyCollection очень похожей на эту: http://matplotlib.org/examples/mplot3d/polys3d_demo.html

Разница в том, что я хочу, чтобы мой код считывал все CSV-файлы из папки и записывал в них данные (а не случайные числа). Каждый файл CSV содержит спектр, т. Е. Два столбца и определенное количество строк. Я хочу, чтобы первая строка была моей x-значениями, а вторая – соответствующими значениями z.

  • pandas to_csv первый дополнительный столбец удаляет, как?
  • Добавление столбца в кадр файла HDF в пандах
  • Чтение каждого столбца из файла csv
  • Групповые данные по сезонам с использованием python и pandas
  • Ориентация на Python - CSV Транспонирование большого количества столбцов в строки
  • Python Pandas Ошибка для токенизации данных
  • Я попробовал это:

    import os import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import PolyCollection fig=plt.figure() ax = fig.gca(projection='3d') input_path = 'input' spectrumfiles = [] verts=[] for root, dirs, files in os.walk(input_path): for name in files: if os.path.splitext(name)[1] == '.CSV' or os.path.splitext(name)[1] == '.csv': spectrumfiles.append(os.path.join(root,name)) zs = np.arange(len(files)) for name in spectrumfiles: spectrum = np.loadtxt(name, delimiter=',') #xs = spectrum[:,0] #I tried this first but then realised that "spectrum #ys = spectrum[:,1] #already has the needed shape #verts.append(list(zip(xs,ys))) verts.append(spectrum) poly = PolyCollection(verts, facecolors=np.ones(len(verts))) #I'm not too bothered with poly.set_alpha(0.7) #colours at the moment ax.add_collection3d(poly, zs=zs, zdir='y') plt.show() 

    Теперь диаграмма, которую я получаю, пуста.

    EDIT: вот 4 образца ФАЙЛОВ

    EDIT2: вот некоторые ссылки на связанные вопросы о stackoverflow. – Распространение импульса графика Матплотлиба в 3d – Питонов участка водопада?

  • Отделите строку строк на отдельные строки
  • Список всех доступных блейд-серверов matplotlib
  • Как я могу прокручивать данные для нескольких страниц на веб-сайте с помощью python и beautifulsoup4
  • стек бар в matplotlib и добавить метку к каждому разделу (и предложения)
  • Градиентный матовый цветной график matplotlib
  • Python: конвертировать Unicode в ASCII без ошибок для файла CSV
  • One Solution collect form web for “Использование matplotlib Polycollection для построения данных из файлов csv”

    Хорошо, легко исправить – ваша единственная проблема в том, что, поскольку вы добавили PolyCollection к своим осям самостоятельно, он автоматически не масштабирует пределы x / y / z до соответствующих значений (все еще показывает от 0 до 1). Для данных, которые у вас есть, добавьте следующие строки:

     ax.set_xlim(0,5000) ax.set_ylim(0,len(spectrumfiles)) 

    то ваши данные будут волшебным образом появляться.

    данные видны сейчас

    Python - лучший язык программирования в мире.