for col in ['hypertension', 'heart_disease', 'diabetes']: sns.countplot(x=col, data=df) plt.title(f'{col} Distribution') plt.show()照上
时间: 2023-08-20 16:06:03 浏览: 45
要在三个条形图上都显示每个条形的具体数值,可以添加以下代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('data.csv')
for col in ['hypertension', 'heart_disease', 'diabetes']:
sns.countplot(x=col, data=df)
# 添加具体数值
for i in range(len(df[col].value_counts().index)):
plt.text(i,
df[col].value_counts()[i],
df[col].value_counts()[i],
ha='center',
va='bottom')
plt.title(f'{col} Distribution')
plt.show()
```
这样就会在三个条形图上都显示每个条形的具体数值。
相关问题
# Count plots for binary variables for col in ['hypertension', 'heart_disease', 'diabetes']: sns.countplot(x=col, data=df) for i in range(len(df[col].value_counts().index)): plt.text(i, df[col].value_counts()[i], df[col].value_counts()[i], ha='center', va='bottom') plt.title(f'{col} Distribution') plt.show()
这段代码使用 Seaborn 和 Matplotlib 库创建了三个计数图,用于显示糖尿病数据集中的高血压、心脏病和糖尿病的分布情况。使用一个 `for` 循环来遍历这三个二元变量,其中 `col` 变量用于存储当前循环中的变量。在循环中,使用 `sns.countplot` 函数创建计数图,其中 `x=col` 表示按当前变量进行计数并绘制条形图,而 `data=df` 表示使用 `df` 数据帧中的数据。接下来,使用 `for` 循环和 `plt.text` 函数,在每个条形图的顶部添加计数值。最后,使用 `plt.title` 函数添加标题,使用 `plt.show` 函数显示图像。
sns.set() for i in ['hypertension', 'heart_disease', 'diabetes']: plt.pie(data=df, labels=("0","1")) plt.show()报错 pie() missing 1 required positional argument: 'x'
你在使用`plt.pie()`函数时出现了错误,原因是缺少了必需的参数`x`。`x`参数是饼状图中各部分的数值,而你传递给`plt.pie()`函数的却是整个数据集`df`。
你需要针对每个变量(例如'hypertension'、'heart_disease'和'diabetes')分别绘制饼状图,而不是一次性将整个数据集传递给函数。
以下是一种正确的方式来绘制多个饼状图:
```python
sns.set()
variables = ['hypertension', 'heart_disease', 'diabetes']
for variable in variables:
counts = df[variable].value_counts() # 获取各个取值的计数
labels = counts.index.tolist() # 取值作为标签
data = counts.values.tolist() # 计数作为数据
plt.pie(data, labels=labels)
plt.title(variable) # 添加标题
plt.show()
```
在上述代码中,我们循环遍历每个变量,提取该变量的取值计数,并将计数作为数据传递给`plt.pie()`函数。然后,我们使用取值作为标签,并添加标题。最后,使用`plt.show()`显示每个饼状图。
请确保在代码中替换`df`为相应的数据集,并根据需要进行其他自定义。