【问题标题】:Plotting a graph between 2 variables using pandas使用 pandas 在 2 个变量之间绘制图表
【发布时间】:2021-04-05 23:08:52
【问题描述】:

我需要在我的数据集的各种属性之间绘制一个图表,根据我目前的知识,我所知道的只是直方图,并且我只能采用一个变量。

我尝试了这个简单的代码:

sn.catplot(x="CDR", y="Age", hue="M/F", data=df);
plt.title('Distribution of Age by CDR rate')

This is the Error I'm getting

CDR 是临床痴呆分级。
我确实有 R 语言的代码,他们首先将它们全部分组,然后绘制图表,但我发现更复杂,所以我决定采用这种方式。

This is the type of graph I need.

我对这个错误一无所知。 我尝试了 df.CDR、df.age、df.M/F,但由于名称“M/F”而出现错误。

'DataFrame' 对象没有属性'M'

我尝试在数据集中更改名称,但这会产生更多错误。

If R code is required

帮助!!!! df.head()

【问题讨论】:

标签: python r pandas


【解决方案1】:

在 Python 中,使用 seaborn.violinplot

https://seaborn.pydata.org/generated/seaborn.violinplot.html

下面的完整示例(来自 seaborn doc):

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

sns.set_theme(style="whitegrid")

tips = sns.load_dataset("tips")

df = pd.DataFrame([[0.0, 0.0, 0.0, 0.2, 0.2, 0.2, 0.2], [87, 88, 89, 60, 55, 58, 59],
                   ["M", "M", "F", "F", "F", "F", "M"]]).T
df.columns = ["CDR", "Age", "M/F"]

df = df.astype({"CDR": "float64", "Age": "int64"}) # Update type

sns.violinplot(x="CDR", y="Age", hue="M/F", data=df)
plt.show()

【讨论】:

  • 同样的错误。无法解释输入“CDR”
  • 您的“CDR”列是否真的存在于您的数据框中?请发布 df.head() 输出。
  • 它对我有用,我由 answser 更新了像你这样的数据。请检查您的数据类型是否正确(“CDR”和“Age”为“float64”或“int64”)
猜你喜欢
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
相关资源
最近更新 更多