matplotlib 3d график

У меня есть список дат в формате 15/10/2017

Я попробовал следующее

 from matplotlib import pyplot import pandas as pd dates = ['15/10/2016', '16/10/2016', "17/10/2015", "15/10/2014"] dates_formatted = [pd.to_datetime(d) for d in dates ] x = [1,2,3,4] z = [5,6,7,8] pyplot.scatter(x, dates_formatted, z) pyplot.show() 

Он выдает ошибку TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

Он показывает, является ли это 2D. например pyplot.scatter(x, dates_formatted)

Я также попробовал следующее

 ax = Axes3D(fig) ax = fig.add_subplot(111,projection='3d') ax.scatter(x, dates_formatted, y) pyplot.show() 

Он выдает ошибку. Float() argument must be a string or number

2 Solutions collect form web for “matplotlib 3d график”

Не всегда тривиально говорить matplotlib как переводить строки в систему координат. Почему бы просто не установить пользовательские метки меток для осей?

 import pandas as pd from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt fig = plt.figure('scatter dates') ax = fig.add_subplot(111, projection='3d') dates = ['15/10/2016', '16/10/2016', "17/10/2015", "15/10/2014"] dates_formatted = [pd.to_datetime(d) for d in dates ] x = [1,2,3,4] y = [9,10,11,12] z = [5,6,7,8] ax.scatter(x, y, z) ax.xaxis.set_ticks(x) ax.xaxis.set_ticklabels(dates_formatted) plt.show() 

введите описание изображения здесь

Scatter ожидает число. Таким образом, вы можете конвертировать свои даты в номер следующим образом:

 y = [ (d-min(dates_formatted)).days for d in dates_formatted] 

Теперь вы можете построить данные как

 pyplot.scatter(x, y) 

Для 3D-сюжета вы можете попробовать что-то вроде этого …

 import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D plt.ion() x = [1,2,3,4] z = [5,6,7,8] dates = ['15/10/2016', '16/10/2016', "17/10/2015", "15/10/2014"] dates_formatted = [pd.to_datetime(d) for d in dates] y = [ (d-min(dates_formatted)).days for d in dates_formatted] fig = plt.figure() ax = fig.add_subplot(111, projection='3d') plt.scatter(x, y, z) 

Ось y теперь в днях. Вы можете изменить это, найдя строку даты и изменив ее обратно …

 dt = [ pd.Timedelta(d) + min(dates_formatted) for d in ax.get_yticks()] 

Преобразуйте их в строки …

 dtStr = [d.isoformat() for d in dt] 

И верните их обратно

 ax.set_yticklabels(dtStr) 
  • Matplotlib: размер финальной фигуры соответствует фигуре с savefig () и bbox_extra_artists
  • Функция eventprofiler QSTK не строится правильно
  • как сделать сюжетную легенду о двух столбцах
  • Pandas: частота штрих-кодов
  • подзаголовки pandas в цикле
  • Пейджинг / прокрутка набора двухмерных карт тепла в matplotlib
  • Окно Matplotlib появляется сзади?
  • Панды: Бар-Участок с двумя стержнями и двумя у-оси
  • python: построение каркаса 3D-кубоида
  • сюжет всей строки на пандах
  • Несколько y-шкал, но только один для панорамирования и масштабирования
  •  
    Interesting Posts for Van-Lav

    Где исходный код для pypi, индекс пакета Python?

    Гистограмма рисования в OpenCV-Python

    При чтении видеофайла OpenCV заканчивается память

    Какая правильная последовательность для смешения поверхностей на экране в pygame?

    Попытка использовать open (имя файла, 'w') дает IOError: Нет такого файла или каталога:

    Эффективная память int-int dict в Python

    как добавить новый столбец в начало файла CSV от Python

    Ошибка фляги: «Метод не разрешен. Метод не разрешен для запрошенного URL».

    Многие-ко-многим в sqlalchemy. Предотвращение вставки SQLAlchemy в таблицу, если тег уже существует

    Запись дат xlwt с использованием формата даты «Дата»

    Как исключить результаты с помощью get_object_or_404?

    Проблема с памятью массива памяти

    Нет такой ошибки таблицы при запуске сервера django из Eclipse

    FSharp запускает мой алгоритм медленнее, чем Python

    может ли пользовательский домен указывать определенный домен версии движка Google?

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