Python Scatter Plot с несколькими значениями Y для каждого X

Я пытаюсь использовать Python для создания графика рассеяния, который содержит две категории X «cat1» «cat2», и каждая категория имеет несколько значений Y. Я могу заставить это работать, если количество значений Y для каждого значения X одинаково, используя следующий код:

import numpy as np import matplotlib.pyplot as plt y = [(1,1,2,3),(1,1,2,4)] x = [1,2] py.plot(x,y) plot.show() 

но как только количество значений Y для каждого значения X не совпадает, я получаю сообщение об ошибке. Например, это не работает:

  • Как сгладить контур контура matplotlib?
  • Среднее скользящее среднее
  • упорядочивая перетасованные точки, которые могут быть соединены для формирования многоугольника (в python)
  • Как преобразовать массив Numpy в изображение PIL с использованием matplotlib colormap
  • сохранение изображений на питоне с очень высоким качеством
  • Построение стрелок разного цвета в matplotlib
  •   import numpy as np import matplotlib.pyplot as plt y = [(1,1,2,3,9),(1,1,2,4)] x = [1,2] plt.plot(x,y) plot.show() #note now there are five values for x=1 and only four for x=2. error 

    Как я могу отображать разные значения Y для каждого значения X и как изменить ось X из числа 1 и 2 в текстовые категории «cat1» и «cat2». Я был бы очень признателен за любую помощь в этом!

    Вот пример изображения типа сюжета, который я пытаюсь сделать:

    http://s12.postimg.org/fa417oqt9/pic.png

  • Python Headless MatplotLib / Pyplot
  • Как построить временные метки в python, используя matplotlib?
  • Colorbar для команды matplotlib plot_surface
  • NumPy ImportError в python - Ошибка загрузки Dll
  • Раскрашивание краев сети по весу
  • matplotlib: могу ли я создать объекты AxesSubplot, а затем добавить их в экземпляр Figure?
  • One Solution collect form web for “Python Scatter Plot с несколькими значениями Y для каждого X”

    Как я могу отображать разные значения Y для каждого значения X

    Просто заговорите каждую группу отдельно:

     for xe, ye in zip(x, y): plt.scatter([xe] * len(ye), ye) 

    и как я могу изменить ось X из числа 1 и 2 в текстовые категории «cat1» и «cat2».

    Установите метки и отметки меток вручную:

     plt.xticks([1, 2]) plt.axes().set_xticklabels(['cat1', 'cat2']) 

    Полный код:

     import matplotlib.pyplot as plt import numpy as np y = [(1,1,2,3,9),(1,1,2,4)] x = [1,2] for xe, ye in zip(x, y): plt.scatter([xe] * len(ye), ye) plt.xticks([1, 2]) plt.axes().set_xticklabels(['cat1', 'cat2']) plt.savefig('t.png') 

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

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