Я знаю, что это такая простая вещь, но из-за нелепых временных ограничений и серьезности ситуации я вынужден спросить что-то вроде этого:
У меня есть два массива из 160 000 записей. Одна содержит строки (имена, которые мне нужно использовать), другая содержит соответствующие 1 и 0.
Я пытаюсь сделать простой «пошаговый» график в pyplot с массивом имен вдоль оси X и 0 и 1 вдоль оси Y.
У меня есть это в настоящее время:
import numpy as np
import matplotlib.pyplot as plt
data = [1, 2, 4, 5, 9]
bindata = [0,1,1,0,1,1,0,0,0,1]
xaxis = np.arange(0, data[-1] + 1)
yaxis = np.array(bindata)
plt.step(xaxis, yaxis)
plt.xlabel('Filter Degree Combinations')
plt.ylabel('Negative Or Positive')
plt.title("Car 1")
#plt.savefig('foo.png') #For saving
plt.show()
Я собрал воедино код из нескольких примеров, учебных пособий и вопросов о стековом потоке, но я сталкиваюсь с «ValueError: x и y должны иметь одно и то же первое измерение » так часто, что я никуда не попадаю, когда пытаюсь поэкспериментировать свой путь вперед.
Всего 1 ответ
Вы можете достичь желаемого графика, указав метки plt.xticks
и их положение на оси x с помощью plt.xticks
. Первый range(0, 10, 2)
аргументов range(0, 10, 2)
- это позиции, за которыми следуют строки
import numpy as np
import matplotlib.pyplot as plt
data = [1, 2, 4, 5, 9]
bindata = [0,1,1,0,1,1,0,0,0,1]
xaxis = np.arange(0, data[-1] + 1)
yaxis = np.array(bindata)
plt.step(xaxis, yaxis)
xlabels = ['Josh', 'Anna', 'Kevin', 'Sophie', 'Steve'] # <-- specify tick-labels
plt.xlabel('Filter Degree Combinations')
plt.ylabel('Negative Or Positive')
plt.title("Car 1")
plt.xticks(range(0, 10, 2), xlabels) # <-- assign tick-labels
plt.show()