Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 分类数据和数值数据的混合pyplot_Python - Fatal编程技术网

Python 分类数据和数值数据的混合pyplot

Python 分类数据和数值数据的混合pyplot,python,Python,我正在浏览Kaggle中的泰坦尼克号示例,我只是想问一个Python方面的问题——我已经到处找过了,但似乎什么也没找到 假设我有一个包含数字和分类数据的列的数据框架。我试图创建3个子图,每个子图都显示这些数据。大概是这样的: fig, ax = plt.subplots(3,1, figsize=(20,20)) ax[0].hist(train_data['Age']) ax[1].scatter(train_data.PassengerId,train_data.Cabin) ax[2].s

我正在浏览Kaggle中的泰坦尼克号示例,我只是想问一个Python方面的问题——我已经到处找过了,但似乎什么也没找到

假设我有一个包含数字和分类数据的列的数据框架。我试图创建3个子图,每个子图都显示这些数据。大概是这样的:

fig, ax = plt.subplots(3,1, figsize=(20,20))
ax[0].hist(train_data['Age'])
ax[1].scatter(train_data.PassengerId,train_data.Cabin)
ax[2].scatter...
我不存在单独创建这些绘图的问题,pyplot显示CAB与PassengerId编号中的字符串,但它无法将它们绘制在一个图形上。即使循环并为每个绘图创建新图形似乎也不起作用


是我做错了什么,还是pyplot就是这样工作的?它是否“设置”代码第一行的数据类型?我可以使用某种.astype()方法来解决这个问题吗?

我不太确定您想做什么,但使用matplotlib可以轻松地在图形的不同面板中绘制不同的内容(或在同一面板中绘制不同的内容)。请参阅下面使用seborn的泰坦尼克号数据副本的示例(它还显示了如何使用seaborn轻松创建统计图):

导入matplotlib.pyplot作为plt
导入seaborn作为sns
泰坦尼克号=sns.load\u数据集(“泰坦尼克号”)
图,ax=plt.子批次(3,1,figsize=(8,10))
ax[0].历史(泰坦尼克号['age']))
ax[1]。分散(泰坦尼克号。年龄,泰坦尼克号。票价)
sns.pointplot(x='class',y='surved',data=titanic,hue='sex',axis=ax[2])
这是您应该看到的图像(前提是您已安装seaborn):

你说matplotlib“不能在一个图形上绘制它们”是什么意思?会发生什么?你期望什么?从你的描述来看,很可能你做错了什么,但描述还不足以让人知道。这正是我想要做的。但我看到你在使用sns。绘制分类数据。我的观点是,您的sns.pinplot()行是[2].scatter(),但这行不通。如果我只绘制分类数据,那么假设只在一个图形上使用plt.plot(),这是可行的。不可行的意思是你得到了一个错误?如果您想要散点打印文本数据,您应该得到一个错误,因为它没有很好地定义。使用seaborn处理此类分类数据是一个很好的解决方案-它实际上在引擎盖下使用matplotlib,但为您节省了一些麻烦。您可以在这里看到更多使用seaborn的示例:好的,我不知道我以前做了什么,因为我无法重新创建它。我100%没有使用sns,我只使用plt。我创建了一个图形,y轴上是所有舱室的名称,x轴上是乘客号。