Likert Scale Plotting
This module provides functions for visualizing Likert scale data, including radar plots and stacked Likert plots.
Plotting functions for visualizing Likert scale data.
FUNCTION | DESCRIPTION |
---|---|
paq_likert |
Create a Likert scale plot for PAQ (Perceived Affective Quality) data. |
paq_radar_plot |
Generate a radar/spider plot of PAQ values. |
paq_likert
paq_likert(data, title='Stacked Likert Plot', paq_cols=PAQ_IDS, *, legend=True, ax=None, plot_percentage=False, bar_labels=True, **kwargs)
Create a Likert scale plot for PAQ (Perceived Affective Quality) data.
PARAMETER | DESCRIPTION |
---|---|
data
|
DataFrame containing PAQ values.
TYPE:
|
paq_cols
|
List of column names containing PAQ data, by default PAQ_IDS. |
title
|
Plot title, by default "Stacked Likert Plot".
TYPE:
|
legend
|
Whether to show the legend, by default True.
TYPE:
|
ax
|
Matplotlib axes to plot on, by default None.
TYPE:
|
plot_percentage
|
Whether to show percentages instead of absolute values, by default False.
TYPE:
|
bar_labels
|
Whether to show bar labels, by default True.
TYPE:
|
**kwargs
|
Additional keyword arguments passed to plot_likert.plot_likert.
DEFAULT:
|
RETURNS | DESCRIPTION |
---|---|
None
|
This function does not return anything, it plots directly to the given axes. |
Examples:
>>> import soundscapy as sspy
>>> data = sspy.isd.load(['CamdenTown'])
>>> paq_likert(data, "Camden Town Likert data")
>>> plt.show() # xdoctest: +SKIP
Source code in soundscapy/plotting/likert.py
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 |
|
paq_radar_plot
paq_radar_plot(data, ax=None, index=None, angles=EQUAL_ANGLES, *, figsize=(8, 8), palette='colorblind', alpha=0.25, linewidth=1.5, linestyle='solid', ylim=(1, 5), title=None, label_pad=15, legend_loc='upper right', legend_bbox_to_anchor=(0.1, 0.1))
Generate a radar/spider plot of PAQ values.
This function creates a radar plot showing PAQ (Perceived Affective Quality) values from a dataframe. The radar plot displays values for all 8 PAQ dimensions arranged in a circular layout.
PARAMETER | DESCRIPTION |
---|---|
data
|
DataFrame containing PAQ values. Must contain columns matching PAQ_LABELS or they will be filtered out.
TYPE:
|
ax
|
Existing polar subplot axes to plot to. If None, new axes will be created.
TYPE:
|
index
|
Column(s) to set as index for the data. Useful for labeling in the legend.
TYPE:
|
figsize
|
Figure size (width, height) in inches, by default (8, 8). Only used when creating new axes. |
colors
|
Colors for the plot lines and fills. Can be: - List of color names/values for each data row - Dictionary mapping index values to colors - Single color name/value to use for all data rows - A matplotlib colormap to generate colors from If None, a default colormap will be used.
TYPE:
|
alpha
|
Transparency for the filled areas, by default 0.25
TYPE:
|
linewidth
|
Width of the plot lines, by default 1.5
TYPE:
|
linestyle
|
Style of the plot lines, by default "solid"
TYPE:
|
ylim
|
Y-axis limits (min, max), by default (1, 5) for standard Likert scale |
title
|
Plot title, by default None
TYPE:
|
text_padding
|
Padding for category labels, by default auto-generated |
legend_loc
|
Legend location, by default "upper right"
TYPE:
|
legend_bbox_to_anchor
|
Legend bbox_to_anchor parameter, by default (0.1, 0.1) |
RETURNS | DESCRIPTION |
---|---|
Axes
|
Matplotlib Axes with radar plot |
Examples:
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> from soundscapy.plotting.likert import paq_radar_plot
>>>
>>> # Sample data with PAQ values for two locations
>>> data = pd.DataFrame({
... "Location": ["Park", "Street"],
... "pleasant": [4.2, 2.1],
... "vibrant": [3.5, 4.2],
... "eventful": [2.8, 4.5],
... "chaotic": [1.5, 3.9],
... "annoying": [1.2, 3.7],
... "monotonous": [2.5, 1.8],
... "uneventful": [3.1, 1.9],
... "calm": [4.3, 1.4]
... })
>>>
>>> # Create radar plot with the "Location" column as index
>>> ax = paq_radar_plot(data, index="Location", title="PAQ Comparison")
>>> plt.show() # xdoctest: +SKIP
Source code in soundscapy/plotting/likert.py
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
|
show_submodules: true