Я кодирую в Python, используя библиотеку Matplotlib, чтобы сделать многопрочный график, например, график с двойным барьером, но у меня есть 7 бар на категорию. Я не уверен, что у меня есть обязательно лучший способ для меня построить эти данные, но они работают. Значение - 0 или NAN. Это создает пробелы в данных, где также отсутствует полоса. Расстояние и т. Д. < /p>
Вот данные, которые я использую. Я разместил его здесь как словарь для копирования, но мой формат использует DataFrame. < /P>
# Libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Dictionary:
bardict = {"B": [0.14,0.12,0.02,0.02,nan,nan,nan],
"L": [0.08,0.14,0.06,0.06,0.07,0.12,0.08],
"M": [0.08,0.09,0.07,0.08,0.22,0.15,0.06],
"C": [0.11,0.10,0.13,0.35,nan,0.11,0.21],
"S": [nan,0.11,0.17,0.46,0.09,0.10,0.08],
"W": [0.12,0.09,0.29,0.63,0.10,0.38,0.26]}
# DataFrame saved under name bar_C:
B C L M S W
0 0.14 0.11 0.08 0.08 NaN 0.12
1 0.12 0.10 0.14 0.09 0.11 0.09
2 0.02 0.13 0.06 0.07 0.17 0.29
3 0.02 0.35 0.06 0.08 0.46 0.63
4 NaN NaN 0.07 0.22 0.09 0.10
5 NaN 0.11 0.12 0.15 0.10 0.38
6 NaN 0.21 0.08 0.06 0.08 0.26
< /code>
И, наконец, вот мой код для создания гистограммы:
(примечание* - я не хочу распоряжаться гистограммой по значению, я хочу их хранится в одном и том же заказе (B, C, L, M ...) < /p>
# Convert dictionary to DataFrame
bar_C = pd.DataFrame(bardict)
fig, ax = plt.subplots(figsize=(10, 6))
N = 6
ind = np.arange(N) #*
width = 0.55
num3_vals = bar_C.loc[0]
num3 = plt.bar(ind*N+(width*0), num3_vals, width, color = 'mediumturquoise')
num4_vals = bar_C.loc[1]
num4 = plt.bar(ind*N+(width*1), num4_vals, width, color='darkred')
num5_vals = bar_C.loc[2]
num5 = plt.bar(ind*N+(width*2), num5_vals, width, color='lightgreen')
num6_vals = bar_C.loc[3]
num6 = plt.bar(ind*N+(width*3), num6_vals, width, color='purple')
num7_vals = bar_C.loc[4]
num7 = plt.bar(ind*N+(width*4), num7_vals, width, color='gray')
print(num7_vals)
num8_vals = bar_C.loc[5]
num8 = plt.bar(ind*N+(width*5), num8_vals, width, color='orange')
num9_vals = bar_C.loc[6]
num9 = plt.bar(ind*N+(width*6), num9_vals, width, color='darkblue')
plt.xlabel("Group")
plt.ylabel('Value')
plt.title("Multi-Bar Graph")
ax = plt.gca()
plt.xticks(ticks = (ind*N),labels = ['B','C','L','M','S','W'])
plt.legend((num3, num4, num5, num6, num7, num8, num9),
('3','4','5','6','7','8','9'),
loc='upper left')
plt.show()
< /code>
output: < /p>
B NaN
L 0.07
M 0.22
C NaN
S 0.09
W 0.10
Name: 4, dtype: float64
pic:
< /p>
Я совершенно новый пользователь - так что, во -первых, заранее спасибо и во -вторых, дайте мне знать, если есть какие -либо ошибки форматирования. < /p>
Я надеюсь на все батончики с данными, так как не будучи нулями, будут нанесены на график. Это сработало, за исключением того, что оставило пустое место, где батончик был бы для нулевых значений. Я хотел бы очистить его так, чтобы пустые пространства исчезали без необходимости удалять данные. 't изменить график каким -либо образом.
Я кодирую в Python, используя библиотеку Matplotlib, чтобы сделать многопрочный график, например, график с двойным барьером, но у меня есть 7 бар на категорию. Я не уверен, что у меня есть обязательно лучший способ для меня построить эти данные, но они работают. Значение - 0 или NAN. Это создает пробелы в данных, где также отсутствует полоса. Расстояние и т. Д. < /p> Вот данные, которые я использую. Я разместил его здесь как словарь для копирования, но мой формат использует DataFrame. < /P> [code]# Libraries import pandas as pd import matplotlib.pyplot as plt import numpy as np
# DataFrame saved under name bar_C: B C L M S W 0 0.14 0.11 0.08 0.08 NaN 0.12 1 0.12 0.10 0.14 0.09 0.11 0.09 2 0.02 0.13 0.06 0.07 0.17 0.29 3 0.02 0.35 0.06 0.08 0.46 0.63 4 NaN NaN 0.07 0.22 0.09 0.10 5 NaN 0.11 0.12 0.15 0.10 0.38 6 NaN 0.21 0.08 0.06 0.08 0.26 < /code> И, наконец, вот мой код для создания гистограммы: (примечание* - я не хочу распоряжаться гистограммой по значению, я хочу их хранится в одном и том же заказе (B, C, L, M ...) < /p> # Convert dictionary to DataFrame bar_C = pd.DataFrame(bardict)
plt.xticks(ticks = (ind*N),labels = ['B','C','L','M','S','W']) plt.legend((num3, num4, num5, num6, num7, num8, num9), ('3','4','5','6','7','8','9'), loc='upper left') plt.show() < /code> output: < /p> B NaN L 0.07 M 0.22 C NaN S 0.09 W 0.10 Name: 4, dtype: float64 [/code] pic: < /p> Я совершенно новый пользователь - так что, во -первых, заранее спасибо и во -вторых, дайте мне знать, если есть какие -либо ошибки форматирования. < /p> Я надеюсь на все батончики с данными, так как не будучи нулями, будут нанесены на график. Это сработало, за исключением того, что оставило пустое место, где батончик был бы для нулевых значений. Я хотел бы очистить его так, чтобы пустые пространства исчезали без необходимости удалять данные. 't изменить график каким -либо образом.
Я кодирую в Python, используя библиотеку Matplotlib, чтобы сделать многопрочный график, например, график с двойным барьером, но у меня есть 7 бар на категорию. Я не уверен, что у меня есть обязательно лучший способ для меня построить эти данные, но...
Я кодирую в Python, используя библиотеку Matplotlib, чтобы сделать многопрочный график, например, график с двойным барьером, но у меня есть 7 бар на категорию. Я не уверен, что у меня есть обязательно лучший способ для меня построить эти данные, но...
Например, число («бесконечность») = бесконечность, потому что он распознает его как число типов, поэтому мне было интересно, если номер («NAN») = NAN по той же причине, по которой число («картофель») = NAN или потому, что он распознает его как...
из импорта панд * из импорта matplotlib.pyplot * из математического импорта * импортировать numpy как число импортировать панд как pd импортировать matplotlib...
Я получаю эту ошибку при запуске команд построения графиков pandas внутри лаборатории Jupyter.
Кто-нибудь знает, в чем проблема?
AssertionError Traceback (most recent call last)
Cell In , line 1
----> 1 a2_data.boxplot(column= ,rot=90);