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.