Python Pyplot/Matplotlib:x轴上带有字符串的二进制数据

Python Pyplot/Matplotlib:x轴上带有字符串的二进制数据,python,matplotlib,graph,Python,Matplotlib,Graph,我知道这是一件很基本的事情,但由于荒谬的时间限制和情况的严重性,我不得不问这样的问题: 我有两个16万条的数组。一个包含字符串(我需要使用的名称),另一个包含相应的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

我知道这是一件很基本的事情,但由于荒谬的时间限制和情况的严重性,我不得不问这样的问题:

我有两个16万条的数组。一个包含字符串(我需要使用的名称),另一个包含相应的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()
它给了我这个:

但我想要这样的东西:


我根据一些示例、教程和stackoverflow问题拼凑了代码,但遇到了“ValueError:x和y必须具有相同的第一维度”通常情况下,当我尝试前进时,我没有取得任何进展。

您可以通过使用
plt.xticks
指定刻度标签及其在x轴上的位置来实现所需的绘图。第一个参数
范围(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()
将numpy导入为np
将matplotlib.pyplot作为plt导入
数据=[1,2,4,5,9]
bindata=[0,1,1,0,1,1,0,0,0,1]
xaxis=np.arange(0,数据[-1]+1)
yaxis=np.array(bindata)
plt.阶跃(xaxis,yaxis)

xlabels=['Josh','Anna','Kevin','Sophie','Steve'].您可以通过使用
plt.xticks
指定刻度标签及其在x轴上的位置来实现所需的绘图。第一个参数
范围(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()
将numpy导入为np
将matplotlib.pyplot作为plt导入
数据=[1,2,4,5,9]
bindata=[0,1,1,0,1,1,0,0,0,1]
xaxis=np.arange(0,数据[-1]+1)
yaxis=np.array(bindata)
plt.阶跃(xaxis,yaxis)

xlabels=['Josh','Anna','Kevin','Sophie','Steve']#只需确保
xaxis
yaxis
的长度在打印前相等即可。您应该始终包含完整的回溯。只需确保
xaxis
yaxis
的长度在打印前相等即可。您应该始终包含完整的回溯。