某公司对财务部门人员是否抽烟进行调查,结果为:否,否,否, 是,是,否,否,是,否,是,否,否,是,是,否,是,否,否,是,是。
1)请用value_count函数统计人数,并绘制条图,按颜色区分是否。
2)请用自定义函数tab生成频数表和频数图。
import pandas as pd
import matplotlib.pyplot as plt
df_1 = pd.DataFrame({'是否':['否','否','否','是','是','否','否','是','否','是','否','否','是','是','否','是','否','否','是','是']})
df_a=df_1['是否'].value_counts()
print(df_1['是否'].value_counts())
print('总数:{}'.format(df_1['是否'].count()))
plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
plt.xticks(range(2),['是','否'],fontsize=14)
x=range(len(df_a))
plt.bar(x=x,height=df_a,width=0.6,alpha=0.5, color=['blue', 'red'])
plt.ylim([0,13])
plt.title("某公司财务部门人员是否抽烟调查",fontsize=15)
for x,y in enumerate(df_a):
plt.text(x,y+0.8,'%s' %round(y,1),ha='center',fontsize=13)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
# 创建了一个DataFrame对象df_1,其中包含了一个名为"是否"的列,列中存放了各个员工是否抽烟的信息。
df_1 = pd.DataFrame({'调查':['否','否','否','是','是','否','否','是','否','是','否','否','是','是','否','是','否','否','是','是']})
# 使用value_counts()函数对"调查"列进行统计,得到一个Series对象df_a,其中包含了各个取值的频数
df_a=df_1['调查'].value_counts()
## 打印了"是否"列的频数统计结果和总数
print(df_1['调查'].value_counts())
print('总数:{}'.format(df_1['调查'].count()))
# 设置了图表的字体和刻度,使用了微软雅黑字体,并将x轴刻度设置为"是"和"否",字体大小为14。
plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
plt.xticks(range(2),['是','否'],fontsize=14)
# 使用bar()函数绘制了柱状图,x轴为0到1的整数范围,高度为频数,宽度为0.6,透明度为0.5,颜色分别为蓝色和红色。
# ylim()函数设置了y轴的范围为0到13,title()函数设置了图表的标题。
x=range(len(df_a))
plt.bar(x=x,height=df_a,width=0.6,alpha=0.5, color=['skyblue', 'yellow'])
plt.ylim([0,13])
plt.title("某公司财务部门人员是否抽烟调查",fontsize=15)
# 使用text()函数在每个柱状图上方添加了对应的频数标签。
for x,y in enumerate(df_a):
plt.text(x,y+0.8,'%s' %round(y,1),ha='center',fontsize=13)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
# 设置全局字体(超级重要!!!!!!!!不然会有乱码)
plt.rcParams['font.family'] = 'Microsoft YaHei'
def tab(data):
# 使用value_counts函数统计每种取值的频数
counts = pd.value_counts(data)
# 计算频率
freqs = counts / counts.sum()
# 构建频数表
table = pd.concat([counts, freqs], axis=1)
table.columns = ['频数', '概率']
# 绘制频数图
plt.bar(table.index, table['频数'], color=['pink', 'yellow'])
# 添加标题和标签
plt.title('频数分布')
plt.xlabel('吸烟员工')
plt.ylabel('统计')
# 显示频数表
print(table)
# 显示频数图
plt.show()
# 定义数据
data = ['否', '否', '否', '是', '是', '否', '否', '是', '否', '是', '否', '否', '是', '是', '否', '是', '否', '否', '是', '是']
# 使用自定义函数tab生成频数表和频数图
tab(data)
import pandas as pd
import matplotlib.pyplot as plt
# 设置全局字体(超级重要!!!!!!!!不然会有乱码)
plt.rcParams['font.family'] = 'Microsoft YaHei'
data = ['否', '否', '否', '是', '是', '否', '否', '是', '否', '是', '否', '否', '是', '是', '否', '是', '否', '否', '是', '是']
df = pd.DataFrame(data, columns=['是否抽烟'])
def tab(df):
# 构建频数表
table=df['是否抽烟'].value_counts()
# 绘制频数图
plt.bar(table.index,table.values,color=['b','g'])
# 添加标题和标签
plt.xlabel('是否抽烟')
plt.ylabel('频数')
plt.title('抽烟调查结果')
# 显示频数图
plt.show()
tab(df)
# 显示频数表 print(table)
freq_table=df['是否抽烟'].value_counts()
print(freq_table)