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

时间:2019-05-14 18:42:53

标签: python matplotlib graph

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

我有两个数组,每个数组有16万个条目。一个包含字符串(我需要使用的名称),另一个包含相应的1和0。

我正在尝试在pyplot中制作一个简单的“步骤”图,其名称数组沿X轴,名称数组沿Y轴为0和1。

我目前有这个:

this.Controls

它给了我这个: enter image description here

但是我想要这样的东西: enter image description here

我将示例,教程和stackoverflow问题中的代码拼凑在一起,但是遇到了“ ValueError:x和y必须具有相同的第一维数”,以至于我什么时候都没得到任何帮助我尝试尝试前进的方向。

1 个答案:

答案 0 :(得分:2)

您可以通过使用plt.xticks指定刻度标签及其在x轴上的位置来获得所需的图形。第一个参数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()

enter image description here