Python 我的方块图在jupyter笔记本中没有输出

Python 我的方块图在jupyter笔记本中没有输出,python,numpy,matplotlib,Python,Numpy,Matplotlib,这是我的代码,我不知道我做错了什么。没有错误,但当我得到我的结果时,它不会显示一个方框图,只显示一个带数字的x轴和y轴 import numpy as np import matplotlib.pyplot as plt #read in the dataset data= np.genfromtxt("C:\\Users\\pearlyn\\Downloads\\education qualification.csv", delimiter=',',

这是我的代码,我不知道我做错了什么。没有错误,但当我得到我的结果时,它不会显示一个方框图,只显示一个带数字的x轴和y轴

import numpy as np
import matplotlib.pyplot as plt
#read in the dataset
data= np.genfromtxt("C:\\Users\\pearlyn\\Downloads\\education qualification.csv",
        delimiter=',',
        names=True, dtype=('U7','U10','U30','U4',int))
race = data[(data['mother_race']=='INDIAN')]
race_1 = race[race['birth_order']=='1st']
race_2= race_1[race_1['month']== '2019-12']

catA = race_2[race_2['mother_education'] == '"A" LEVEL/DIPLOMA']['birth_count']
catB = race_2[race_2['mother_education'] == '"N" LEVEL/"O" LEVEL']['birth_count']
catC = race_2[race_2['mother_education'] == 'NO QUALIFICATION']['birth_count']
catD = race_2[race_2['mother_education'] == 'PSLE']['birth_count']
catE = race_2[race_2['mother_education'] == 'UNIVERSITY DEGREE']['birth_count']
y_values = np.array([catA, catB, catC, catD, catE])
x_labels = np.unique(data['mother_education'])

plt.boxplot(y_values.transpose(),all(x_labels),patch_artist=True)
plt.show()

实际上,问题是您的
数据
变量Jupiter notbook无法从您的设备获取该文件位置,因为它是在线IDE,因此无法打开您的存储位置。您应该尝试使用vs代码或python的其他IDE,因为它们嵌入到系统中,并且可以获取文件位置。

如果有帮助,请告诉我。

实际上,问题是您的
数据
变量Jupiter notbook无法从您的设备获取该文件位置,因为它是在线IDE,因此无法打开您的存储位置。您应该尝试使用vs代码或python的其他IDE,因为它们嵌入到系统中,并且可以获取文件位置。
如果有帮助,请告诉我。

为了重现您的问题,问题可能是由于在字符串中处理不受支持的双引号引起的,尤其是对于
母亲教育
值。Numpy的文本解析器将引号加倍,并将整个值用引号括起来!因此,您的逻辑调用返回空数组,因为它们不以对象数组中的实际值为条件

请参阅下面的随机演示和数据打印

从io导入StringIO
将numpy作为np导入
作为pd进口熊猫
教育组=[“A”级/文凭“,“N”级/“O”级”,
“无资格”、“PSLE”、“大学学位”]
#创建两列的随机数据集
np.随机种子(20201212)
random_df=pd.DataFrame({'mother_education':np.random.choice(教育组,500),
“出生计数”:np.random.randint(1,15500),
})
#创建csv数据集
csv\u数据=随机分布到csv(索引=假)
#读入数据集
data=np.genfromtxt(StringIO(csv_数据),
分隔符=',',
name=True,dtype=['U30',int])
打印(数据[0:25])
#[(“A”级/文凭),6)(“PSLE”,3)(“PSLE”,8)
#("大学学位",13)("N"级,"O"级,3("PSLE",12)
#("大学学位",3)("大学学位",9)("N级","O级",9
#(“无资格”,10)(“大学学位”,8)
#("大学学位",5)("N"级,"O"级,7)
#("无资格",6)("N"级/O"级,1)("PSLE",10)
#(“无资格”,8)(“N”级/“O”级,13)
#(“大学学位”,12)(“A”级/文凭,7)
#(‘无资格’、7)(‘PSLE’、6)(‘PSLE’、4)
#(“无资格”,10)(“无资格”,14)]

# [('mother_education','为了重现您的问题,问题可能是由于在字符串中处理不受支持的双引号引起的,
numpy.genfromtxt
,尤其是在
mother_education
值中。numpy的文本解析器将引号加倍并将整个值括在引号中!因此,您的逻辑调用urn空数组,因为它们不符合对象数组中的实际值

请参阅下面的随机演示和数据打印

从io导入StringIO
将numpy作为np导入
作为pd进口熊猫
教育组=[“A”级/文凭“,“N”级/“O”级”,
“无资格”、“PSLE”、“大学学位”]
#创建两列的随机数据集
np.随机种子(20201212)
random_df=pd.DataFrame({'mother_education':np.random.choice(教育组,500),
“出生计数”:np.random.randint(1,15500),
})
#创建csv数据集
csv\u数据=随机分布到csv(索引=假)
#读入数据集
data=np.genfromtxt(StringIO(csv_数据),
分隔符=',',
name=True,dtype=['U30',int])
打印(数据[0:25])
#[(“A”级/文凭),6)(“PSLE”,3)(“PSLE”,8)
#("大学学位",13)("N"级,"O"级,3("PSLE",12)
#("大学学位",3)("大学学位",9)("N级","O级",9
#(“无资格”,10)(“大学学位”,8)
#("大学学位",5)("N"级,"O"级,7)
#("无资格",6)("N"级/O"级,1)("PSLE",10)
#(“无资格”,8)(“N”级/“O”级,13)
#(“大学学位”,12)(“A”级/文凭,7)
#(‘无资格’、7)(‘PSLE’、6)(‘PSLE’、4)
#(“无资格”,10)(“无资格”,14)]

# [('mother_education','所以,在回答时,人们告诉你,他们不能说太多,因为他们没有你的输入数据。为什么你认为这与这里不相关?我如何添加我的输入数据?请发布csv数据。好奇的是,你为什么使用
numpy
,而不是
pandas
,后者更适合运行逻辑过滤器按列标识符?在文本编辑器中打开csv数据并复制/粘贴样本(足以重现问题)它的内容在这里,格式化在一个代码块内。记住csv是一个文本文件。所以,在回答时,人们告诉你,他们不能说太多,因为他们没有你的输入数据。为什么你认为这与这里无关?我如何添加我的输入数据?请发布csv数据。好奇的是,为什么你使用
numpy
,而不是
>pandas
哪个更适合按列标识符运行逻辑过滤器?在文本编辑器中打开csv数据,并在此处复制/粘贴其内容的样本(足以复制问题),在代码块中格式化。记住csv是一个文本文件。