Exemplos de gráficos likert no R
library(likert)
library(ggplot2)
library(xtable)
data <- data.frame(
Q1 = c(5,5,5),
Q2 = c(5,3,5),
Q3 = c(5,3,5),
Q4 = c(5,4,5),
Q5 = c(5,5,5),
Q6 = c(5,2,3),
Q7 = c(4,5,5),
Q8 = c(5,5,5),
Q9 = c(5,2,5),
Q10 = c(5,2,5),
Q11 = c(4,5,5),
Q12 = c(5,5,5),
Q13 = c(4,5,5),
Q14 = c(5,5,5)
)
colnames(data) <- c("Q1", "Q2", "Q3", "Q4", "Q5","Q6", "Q7", "Q8","Q9", "Q10", "Q11", "Q12", "Q13", "Q14")
data <- data[, order(colnames(data))]
for (i in 1:14) {
data[, i] <- factor(data[, i], levels = 1:5, labels = c("Discordo totalmente", "Discordo", "Neutro", "Concordo", "Concordo totalmente"))
}
data
## Q1 Q10 Q11
## 1 Concordo totalmente Concordo totalmente Concordo
## 2 Concordo totalmente Discordo Concordo totalmente
## 3 Concordo totalmente Concordo totalmente Concordo totalmente
## Q12 Q13 Q14
## 1 Concordo totalmente Concordo Concordo totalmente
## 2 Concordo totalmente Concordo totalmente Concordo totalmente
## 3 Concordo totalmente Concordo totalmente Concordo totalmente
## Q2 Q3 Q4
## 1 Concordo totalmente Concordo totalmente Concordo totalmente
## 2 Neutro Neutro Concordo
## 3 Concordo totalmente Concordo totalmente Concordo totalmente
## Q5 Q6 Q7
## 1 Concordo totalmente Concordo totalmente Concordo
## 2 Concordo totalmente Discordo Concordo totalmente
## 3 Concordo totalmente Neutro Concordo totalmente
## Q8 Q9
## 1 Concordo totalmente Concordo totalmente
## 2 Concordo totalmente Discordo
## 3 Concordo totalmente Concordo totalmente
likert_data <- likert(data)
plot(likert_data, type = "bar")
lik <- likert(data)
plot(lik, type = "heat", wrap = 60, text.size=3) + theme(axis.text.y = element_text( size="5"))
import pingouin as pg
import pandas as pd
data = {
'Item1': [5,5,5],
'Item2': [5,5,5],
'Item3': [5,3,5],
'Item4': [5,4,5],
'Item5': [5,5,5],
'Item6': [5,2,3],
'Item7': [4,5,5],
'Item8': [5,5,5],
'Item9': [5,2,5],
'Item10': [5,2,5],
'Item11': [4,5,5],
'Item12': [5,5,5],
'Item13': [4,5,5],
'Item14': [5,5,5]
}
df = pd.DataFrame(data)
alpha = pg.cronbach_alpha(df)
print("Alpha de Cronbach:", alpha)
## Alpha de Cronbach: (0.6863905325443787, array([-0.338, 0.992]))
import pandas as pd
import plot_likert
data = pd.DataFrame({
'A empresa/entidade cumpre todas as normas e regulamentos estabelecidos pela PNRS?': {3: 'Strongly agree'},
'Existe um plano de gerenciamento de resÃduos sólidos de acordo com as diretrizes da PNRS?': {3: 'Strongly agree'},
'A coleta seletiva de resÃduos eletrônicos é realizada de maneira eficiente?': {1: 'Neither agree nor disagree', 2: 'Strongly agree'},
'Há a segregação adequada dos resÃduos eletrônicos no momento da coleta?': {1: 'Agree', 2: 'Strongly agree'},
'A empresa/entidade implementa sistemas de logÃstica reversa conforme exigido pela PNRS?': {3: 'Strongly agree'},
'Existe um programa de retorno de produtos obsoletos ou fora de uso?': {1: 'Disagree', 1: 'Neither agree nor disagree', 1: 'Strongly agree'},
'Os resÃduos eletrônicos são tratados de acordo com as tecnologias e processos adequados?': {1: 'Agree', 2: 'Strongly agree'},
'A destinação final dos resÃduos está alinhada com as diretrizes ambientais estabelecidas?': {3: 'Strongly agree'},
'A empresa/entidade adota medidas para a redução da geração de resÃduos eletrônicos?': {1: 'Disagree', 2: 'Strongly agree'},
'São realizadas campanhas de conscientização para os usuários finais sobre a importância da reciclagem?': {1: 'Disagree', 2: 'Strongly agree'},
'Existe um sistema de monitoramento para avaliar o desempenho do processo de reciclagem?': {1: 'Agree', 2: 'Strongly agree'},
'A empresa/entidade elabora relatórios periódicos sobre a quantidade e destino dos resÃduos reciclados?': {3: 'Strongly agree'},
'A empresa/entidade investe em pesquisas e tecnologias inovadoras para aprimorar o processo de reciclagem?': {1: 'Agree', 2: 'Strongly agree'},
'Existem parcerias com instituições de pesquisa para desenvolvimento de novas técnicas?': {3: 'Strongly agree'},
});
plot_likert.plot_likert(data, plot_likert.scales.agree, plot_percentage=True, label_max_width=110);
## C:\PYTHON~1\lib\site-packages\plot_likert\plot_likert.py:313: UserWarning: In your data, not all questions have the same number of responses. i.e., different numbers of people answered each question. Therefore, the percentages aren't directly comparable: X% for one question represents a different number of responses than X% for another question, yet they will appear the same in the percentage graph. This may be misleading to your reader.
## warn(
import matplotlib.pyplot as plt
import numpy as np
# Dados fictÃcios para exemplo
perguntas = ["Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", "Q12", "Q13", "Q14"]
media = [5.0, 5.0, 4.3, 4.7, 5.0, 3.3, 4.7, 5.0, 4.0, 4.0, 4.7, 5.0, 4.7, 5.0]
# Configurações do gráfico
fig, ax = plt.subplots()
colors = plt.cm.viridis(np.linspace(0, 1, len(perguntas))) # Cores baseadas em colormap
bar_width = 0.5
# Criando as barras horizontais
bars = ax.barh(perguntas, media, color=colors, edgecolor='black')
# Adicionando rótulos e tÃtulo
ax.set_xlabel('Média de Avaliação')
ax.set_ylabel('Perguntas')
ax.set_title('Análise das respostas')
# Adicionando grades
ax.xaxis.grid(True)
# Adicionando valores nas barras
for bar in bars:
width = bar.get_width()
ax.annotate('{:.1f}'.format(width),
xy=(width, bar.get_y() + bar.get_height() / 2),
xytext=(5, 0),
textcoords='offset points',
va='center')
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
categories = ['Alpha']
point_estimates = [0.68]
confidence_intervals = [(-0.33, 0.99)]
sns.pointplot(x=categories, y=point_estimates, color='black')
for i in range(len(categories)):
plt.plot([i, i], confidence_intervals[i], color='red')
plt.ylabel('Alpha de Cronbach')
plt.title('Alpha de Cronbach')
plt.show()
Abaixo uma figura gerada no Colab.