首页 > 其他分享 >开源一个多重响应集比较多的问卷-----玉溪市博物馆展览文本相关问卷调查

开源一个多重响应集比较多的问卷-----玉溪市博物馆展览文本相关问卷调查

时间:2024-12-13 13:01:41浏览次数:12  
标签:index plt labels 开源 value 玉溪市 ----- values distribution

最近期末了,大家做的问卷调查相关的课程都比较多,我来展示部分问卷分析,

问卷主题是:玉溪市博物馆展览文本相关问卷调查

问卷内主要是多重响应集合

详细说一下 spss多重相应的分析及python可视化部分

一、多重相应集的定义:

具体的路径就是  SPSS菜单栏-->分析-->多重响应--->定义变量集合

之后,将您需要合并的 多选题的题项 逐个选入 集合中的变量中

这里,需要特别说明的是,问卷星中,多选题的答案是有0/1构成的二分类变量,也就是将原来的题项中的类dummy以后的结果,所以 在 变量编码方式 选项卡中,应该选择 二分法,计数值 设置为1.

其他按照上述设计后,点击添加按钮,就可以生成你需要的第一个多重相应集合了

这份问卷涉及的有5个多选题目,咱们是需要逐个按照上述方法 生成 多重响应集的

在问卷中,多重响应集首先是需要进行频数统计的,路径如下图

具体是 菜单栏--->分析--->多重响应--->频率

之后将根据之前生成的几个多重响应集选中到表选项,点击确认就可以生成下列结果了

如果你还需要知道其他差异,比如不同的了解途径在男女或者不同年龄层、 不同职业之间的差异,那么可以进行交叉表的计算

具体操作路径 跟频数类似,只不过选项卡 在 频数统计的下面,

选择交叉表后,需要进行如下设置

(1)行选项中,选择所有需要 统计的多重响应集(这里放在列也是可以的)

(2)列中放入你所需要进行交叉分析的年龄层或职业等选项

(3)定义列中有效数据范围(这个问卷的有效范围是1-6,因此最小值为1 最大值为6)

之后就可以生成如下图所以的数据表了

接下来咱们分享一些python可视化的代码,其中数据导入部分省略,代码和图片效果可以一一对应

基础库的导入

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.colors import ListedColormap
from math import pi
import matplotlib   #避免中文可视化时乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']   #避免中文可视化时乱码
matplotlib.rcParams['axes.unicode_minus'] = False   #避免中文可视化时乱码
plt.figure(figsize=(8, 8))
q1_distribution = df['Q1'].map(q1_labels).value_counts()
plt.pie(q1_distribution, labels=q1_distribution.index, autopct='%1.1f%%', startangle=90, colors=sns.color_palette("viridis", len(q1_distribution)))
plt.title('Q1 年龄分布')
plt.show()

上图为饼图,主要展示年龄构成成分

plt.figure(figsize=(10, 6))
q2_distribution = df['Q2'].map(q2_labels).value_counts()
sns.barplot(y=q2_distribution.index, x=q2_distribution.values, palette='viridis')
for index, value in enumerate(q2_distribution.values):
    plt.text(value, index, f'{value}', va='center', fontsize=10)
plt.title('Q2 职业分布')
plt.xlabel('人数')
plt.show()

这里提供一个多选题的可视化思路

q3_labels = {
    'Q3_Choice1': '广播电视', 'Q3_Choice2': '微信公众号', 'Q3_Choice3': '报纸杂志',
    'Q3_Choice4': '小红书', 'Q3_Choice5': '朋友介绍', 'Q3_Choice6': '抖音', 'Q3_Choice7': '实地信息'
}

q3_distribution = df[list(q3_labels.keys())].sum()
q3_distribution.index = [q3_labels[col] for col in q3_distribution.index]
plt.figure(figsize=(10, 6))
q3_distribution.plot(kind='bar', color=sns.color_palette("viridis", len(q3_distribution)))
for index, value in enumerate(q3_distribution.values):
    plt.text(index, value, f'{value}', ha='center', fontsize=10)
plt.title('Q3 信息获取途径')
plt.ylabel('选择次数')
plt.show()

效果图

q4_distribution = df['Q4'].map(q4_labels).value_counts().sort_index()
plt.figure(figsize=(8, 6))
plt.plot(q4_distribution.index, q4_distribution.values, marker='o', color='blue')
for i, value in enumerate(q4_distribution.values):
    plt.text(i + 1, value, f'{value}', ha='center', va='bottom', fontsize=10)
plt.title('Q4 博物馆参观频次')
plt.xlabel('频次类别')
plt.ylabel('选择人数')
plt.show()

plt.figure(figsize=(8, 6))
q5_distribution = df['Q5'].map(q5_labels).value_counts().sort_index()
sns.barplot(x=q5_distribution.index, y=q5_distribution.values, palette='viridis')
for index, value in enumerate(q5_distribution.values):
    plt.text(index, value, f'{value}', ha='center', va='bottom', fontsize=10)
plt.title('Q5 理想参观时长分布', fontsize=16)
plt.xlabel('时长类别', fontsize=12)
plt.ylabel('人数', fontsize=12)
plt.xticks(ticks=range(len(q5_labels)), labels=list(q5_labels.values()), rotation=0, fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

plt.figure(figsize=(8, 6))
q7_distribution = df['Q7'].map(q7_labels).value_counts()
sns.barplot(y=q7_distribution.index, x=q7_distribution.values, palette='coolwarm')
for index, value in enumerate(q7_distribution.values):
    plt.text(value, index, f'{value}', va='center', fontsize=10)
plt.title('Q7 文字吸引力分布')
plt.xlabel('选择次数')
plt.ylabel('类别')
plt.grid(axis='x', linestyle='--', alpha=0.7)
plt.show()

categories = list(q3_distribution.index)
values = list(q3_distribution) + [q3_distribution[0]]
angles = [n / float(len(categories)) * 2 * pi for n in range(len(categories))] + [0]
plt.figure(figsize=(6, 6))
ax = plt.subplot(111, polar=True)
ax.fill(angles, values, color='blue', alpha=0.25)
ax.plot(angles, values, color='blue', linewidth=2)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories, fontsize=10)
plt.title('Q8 偏好分布')
plt.show()

categories = list(q9_labels.values())
values = df['Q9'].map(q9_labels).value_counts().sort_index().values
values = list(values) + [values[0]]  # 闭合雷达图

angles = [n / float(len(categories)) * 2 * pi for n in range(len(categories))]
angles += angles[:1]

plt.figure(figsize=(8, 8))
ax = plt.subplot(111, polar=True)
ax.fill(angles, values, color='blue', alpha=0.25)
ax.plot(angles, values, color='blue', linewidth=2)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories, fontsize=10)
plt.title('Q9 表达美偏好分布')
plt.show()

plt.figure(figsize=(8, 6))
q10_distribution = df['Q10'].map(q10_labels).value_counts().sort_index()
plt.bar(q10_distribution.index, q10_distribution.values, color=sns.color_palette("viridis", len(q10_distribution)))
for index, value in enumerate(q10_distribution.values):
    plt.text(index + 1, value, f'{value}', ha='center', va='bottom', fontsize=10)
plt.title('Q10 青铜镜了解程度')
plt.xlabel('了解程度')
plt.ylabel('人数')
plt.xticks(ticks=range(1, len(q10_labels) + 1), labels=list(q10_labels.values()))
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

plt.figure(figsize=(8, 8))
q13_distribution = df['Q13'].map(q13_labels).value_counts()
plt.pie(q13_distribution, labels=q13_distribution.index, autopct='%1.1f%%', startangle=90,
        colors=sns.color_palette("viridis", len(q13_distribution)),
        wedgeprops=dict(width=0.3, edgecolor='w'))
plt.title('Q13 展览效果评价')
plt.show()

因为不是专业论文,而是课程小作业,所以可视化就比较随心了,主要是给大家提供一个可视化的参考

标签:index,plt,labels,开源,value,玉溪市,-----,values,distribution
From: https://blog.csdn.net/2301_80791203/article/details/144442996

相关文章

  • 【Python网络爬虫笔记】11- Xpath精准定位元素
    目录一、Xpath在Python网络爬虫中的作用(一)精准定位元素(二)应对动态网页(三)数据结构化提取二、Xpath的常用方法(一)节点选取(二)谓词筛选(三)轴操作三、Xpath在Python中的安装和使用(一)安装(二)使用Xpath提取特定内容四、Xpath在Python网络爬虫中的典型案例(一)新闻网站......
  • 【Python网络爬虫笔记】12- Xpath快速爬取汽车之家2024年最新二手车信息
    目录一、准备工作二、读取数据三、汽车之家二手汽车网站HTML结构解析四、使用XPath解析数据本文将深入介绍如何使用Python结合XPath来爬取汽车之家二手车信息,包括对汽车之家二手汽车网站的HTML结构解析。一、准备工作首先,我们需要导入lxml库中的etree模块。这个模......
  • 【秋招笔试-支持在线评测】11.13花子_海外版秋招(已改编)-三语言题解
    ......
  • 20222308 2021-2022-7 《网络与系统攻防技术》实验七实验报告
    1.实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站SET工具:是一个用于社会工程学攻击的工具集,它可以帮助攻击者模拟各种网络攻击场景,包括钓鱼网站攻击、口令截取攻击等。在实验中,通过使用SET工具,可......
  • 用友U8 18.0总账--填制凭证
    总账–填制凭证填制1、增加:单击增加按钮或按[F5]键,增加一张新凭证。增加-【调用常用凭证】:输入或参照选择常用凭证代号,即可调用。增加-插入凭证:在原有的凭证中插入一张凭证,插入凭证凭证类别、凭证编号自动生成,即为被插入凭证的凭证类别、凭证编号,不可修改。插入凭证......
  • RabbitMQ快速入门 - 生产者和消费者的简单实现
    引入依赖<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.7.3</version></dependency>编写生产者代码        RabbitMQ默认的⽤于客户端连接的TCP端⼝号是5672,需要提前进⾏开放代码及其注解p......
  • 哨兵1号卫星处理-地理编码校正
    哨兵1号卫星数据是SAR数据,与光学影像不同,是一种雷达数据。有时候打卡图像发现,方向是颠倒的,这个因为数据还没有进行地理编码。这个时候需利用SNAP软件要先对数据进行热噪声去除-相干波滤波-地形校正等诸多前处理步骤(一定要先做轨道校正,不然的话会报错),之后在Radar-Geometric-Elli......
  • SQL 在线格式化 - 加菲工具
    SQL在线格式化打开网站加菲工具选择“SQL在线格式化”或者直接访问https://www.orcc.online/tools/sql输入sql,点击上方的格式化按钮即可输入框得到格式化后的sql结果......
  • Springboot+maven+druid+mybatis-plus多数据源
    Springboot版本:2.3.12.RELEASE1.maven依赖<!--druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.22&l......
  • Day46--3种布局管理器
    Day46--3种布局管理器必备的英语:hgaphorizontalgap水平间距horizontaladj.水平的vgapverticalgap垂直间距verticaladj.垂直的button的用法;“label”......