Reputation: 185
Why my boxplot is not showing the expected output? I can see only circles and instead I'll want to see a traditional boxplot. How can I fix it?
import matplotlib as plt
collection_0 = [826, 58, 305, 161, 341, 25, 50, 1303, 1241, 406, 4318, 14330, 62, 45, 17, 809, 2560, 2901, 1988, 1755, 2584, 1924, 218, 13, 140, 156, 591, 109, 17, 563, 242, 23, 156, 179, 85, 59, 78, 55, 57, 27, 33, 62, 499, 685, 1418, 70, 155, 388, 205, 62, 22, 358, 688, 273, 27, 107, 85, 856, 375, 144, 476, 161, 33, 1748, 315, 106, 347, 85, 43, 157, 770, 616, 220, 13, 170, 156, 200, 165, 1211, 138, 163, 61, 78, 140, 318, 1296, 14, 386, 19, 918, 193, 381, 178, 106, 91, 109, 261, 72, 436, 194, 176, 237, 28, 201, 36, 166, 1928, 358, 611, 58, 82, 59, 37, 269, 223, 836, 45, 425, 166, 26, 63, 387, 270, 180, 331, 342, 629, 610, 46, 67, 151, 57, 188, 70, 96, 41, 92, 79, 26, 56, 188, 466, 214, 45, 39, 161, 70, 134, 370, 70, 401, 85, 113, 224, 60, 508, 58, 71, 49, 56, 400, 1308, 22, 124, 74, 63, 56, 84, 144, 26, 29, 33, 20, 241, 25, 17, 25, 45, 37, 100, 93, 175, 27, 308, 134, 28, 203, 195, 161, 168, 364, 102, 66, 53, 57, 195, 30, 55, 108, 110, 75, 42, 531, 25, 17, 156, 24, 29, 303, 77, 36, 184, 67, 15, 92, 124, 206, 51, 87, 83, 23, 134, 64, 50, 99, 451, 144, 265, 228, 96, 357, 39, 14, 91, 46, 110, 75, 18, 30, 93, 61, 31, 203, 226, 92, 162, 415, 30, 48, 86, 51, 79, 130, 181, 17, 64, 57, 168, 153, 72, 57, 34, 234, 18, 30, 72, 98, 44, 114, 58, 23, 54, 24, 126, 37, 28, 73, 8, 38, 86, 214, 46, 34, 63, 79, 72, 111, 37, 499, 382, 76, 589, 72, 139, 108, 301, 63, 158, 17, 12, 103, 337, 65, 17, 56, 32, 27, 14, 224, 33, 40, 55, 60, 76, 18, 24, 56, 99, 135, 23, 50, 102, 74, 114, 29, 24, 50, 84, 33, 316, 52, 38, 112, 61, 10, 22, 17, 71, 22, 99, 51, 84, 34, 32, 18, 91, 240, 29, 141, 121, 67, 40, 303, 78, 86, 48, 149, 102, 57, 42, 88, 137, 133, 89, 88, 70, 31, 24, 73, 7, 53, 46, 156, 17, 133, 85, 103, 70, 26, 145, 26, 112, 81, 37, 27, 98, 14, 84, 26, 31, 43, 42, 19, 38, 32, 35, 92, 168, 53, 175, 25, 30, 48, 84, 98, 57, 62, 32, 38, 75, 11, 33, 29, 38, 48, 52, 244, 303, 135, 10, 52, 12, 43, 78, 34, 50, 51, 49, 68, 68, 53, 18, 50, 64, 17, 27, 17, 21, 12, 46, 29, 35, 31, 93, 93, 25, 20, 18, 18, 43, 61, 29, 16, 40, 28, 26, 15, 30, 41, 67, 75, 53, 64, 105, 15, 35, 41, 22, 54, 20, 38, 31, 21, 105, 23, 37, 12, 29, 38, 16, 16, 21, 57, 66, 83, 44, 43, 14, 28, 48, 51, 17, 21, 16, 7, 34, 50, 23, 14, 18, 23, 32, 91, 29, 31, 23, 9, 14, 17, 15, 43, 16, 17, 20, 11, 16, 7, 13, 11, 49, 42, 13, 23, 18, 28, 38, 23, 10, 32, 9, 34, 16, 18, 9, 23, 16, 12, 65, 31, 37, 16, 9, 34, 8, 12, 22, 55, 17, 30, 13, 25, 27, 14, 7, 78, 19, 11, 41, 54, 22, 27, 8, 18, 22, 6, 29, 16, 35, 27, 8, 10, 7, 51, 9, 23, 12, 9, 6, 15, 16, 8, 7, 14, 12, 10, 14, 17, 10, 13, 18, 8, 7, 9, 10, 10]
collection_1 = [1353, 25, 2430, 1995, 1209, 1291, 564, 68, 1184, 81, 132, 140, 1463, 258, 143, 338, 63, 38, 144, 534, 130, 2742, 392, 157, 301, 193, 620, 2303, 2269, 84, 1464, 148, 593, 191, 102, 1194, 211, 11, 2498, 359, 808, 552, 96, 334, 238, 46, 1771, 536, 160, 195, 318, 193, 684, 280, 249, 19, 235, 15, 144, 2030, 104, 619, 523, 106, 902, 31, 13, 55, 9, 21, 68, 51, 45, 92, 41, 432, 436, 137, 81, 57, 210, 254, 34, 28, 301, 72, 134, 409, 30, 53, 112, 106, 267, 33, 57, 35, 18, 143, 52, 45, 36, 183, 43, 66, 40, 100, 194, 139, 18, 280, 262, 62, 331, 196, 604, 56, 43, 181, 82, 171, 57, 22, 34, 52, 46, 260, 125, 50, 46, 23, 69, 83, 28, 219, 94, 32, 82, 31, 200, 20, 78, 725, 225, 107, 58, 59, 31, 44, 18, 136, 180, 74, 20, 44, 28, 90, 69, 48, 47, 50, 74, 18, 50, 20, 75, 127, 19, 80, 23, 163, 30, 103, 27, 10, 37, 37, 44, 41, 46, 49, 48, 55, 14, 19, 42, 79, 50, 45, 36, 15, 45, 128, 122, 46, 38, 21, 21, 81, 24, 12, 15, 53, 9, 26, 43, 23, 16, 79, 9, 45, 146, 58, 17, 30, 13, 8, 17, 24, 56, 6, 12, 17, 9, 15, 11, 13, 13, 12, 14, 21, 10, 8, 15, 8, 28, 8, 11, 24, 9, 13, 30, 14, 15, 7, 9, 25, 7, 8, 10, 5, 7, 7, 6, 7, 6, 7, 8, 9]
data_to_plot = [collection_0, collection_1]
box = plt.boxplot(data_to_plot,patch_artist=True, labels=["Contracting", "Expanding"])
colors = ['red', 'green']
for patch, color in zip(box['boxes'], colors):
patch.set_facecolor(color)
plt.ylabel("Unique adopters")
plt.show()
Upvotes: 1
Views: 148
Reputation: 39052
Your data varies over 4 orders of magnitude with a majority of data lying close to less than 1000. The mean of your data is around 170 and so the whole box plot appears compressed due to the huge outlier value of above 14000. You can see this via a histogram
plt.hist(collection_0);
You should try using a log scale for your expected visualization
plt.yscale('log')
Upvotes: 2