Проблема
Я хочу использовать PyCharm с plotnine, чтобы автоматически генерировать симпатичные фигуры из кода, хранящегося в блокнотах и выполняемого в интерактивной консоли Python. Но я получаю очень странное поведение:
С первой командой plotnine, которую я выполняю (назначая некоторый объект plotnine, такой как тема, например, переменной), появляется маленькое и пустое окно "Figure" - окно иисчезает через миллисекунду или около того. После этого каждая команда, которую я выполняю, производит 2 таких числа, которые исчезают через 1 или 2 секунды. Одновременное выполнение нескольких команд (в соответствии с «Выбором выполнения в консоли Python») дает 4 таких числа.
Все это замедляет выполнение. Я еще не сделал с ним огромных сценариев, но даже в коротком примере мне кажется, что он вялый. После заговора (который, кажется, работает нормально), я получаю некоторые сообщения об ошибках, которые я не понимаю. Но я волнуюсь, что они окажутся значительными в долгосрочной перспективе.
Я нашел только один поток с, казалось бы, похожей проблемой ( Печать с плотнином открывает много окон ), и это не такочень далеко.
Спасибо, что нашли время и извините за мой простой подход и отсутствие знаний в области программирования.
Справочная информация
Я пытаюсь переключиться с R наRstudio и ggplot2 для Python. Главным образом, из-за интереса к Python в genreal и из-за того, что кто-то может использовать мой код в приложении Python в будущем. Я, в свою очередь, использую R как замену Matlab, которую я широко использовал в университете, но сейчас у нас нет бесплатной лицензии. Я хотел бы использовать PyCharm, потому что некоторые коллеги используют его также. И из моего websearch plotnine, кажется, лучший помощник для Rgglot2. Поскольку PyCharm, похоже, всегда хочет иметь законченный Python-проект, но я привык только к отдельным файлам сценариев Matlab и R, я использую «чистые файлы» PyCharms для хранения кода и выполняю его в интерактивной консоли.
Я пытался:
- Я не получаю такое же поведение / проблемы при использовании pyplot.
- Разделение функций plotnine (ggplot, aes, geom_bar) на разные переменные или нетничего не меняет.
- Я заключил команду ggplot в скобки - (pln.ggplot (dfp) + pln.aes (x = "pos", y = "value", fill = "variable") + pln.geom_bar (stat = "identity")) - как я видел во всех онлайн-уроках по созданию сюжетов, которые я искал. Это не имело никакого значения. (Для чего нужны эти скобки? Никто, кажется, не объясняет это.)
Пример кода
import pandas as pd
import plotnine as pln
pos = ["pos 1", "pos 2", "pos 3", "pos 4", "pos 5", "pos 6", "pos 7", "pos 8", "pos 9", "pos 10" ] # Example data
val = [0.97, 0.65, 0.82, 0.90, 0.74, 0.77, 0.82, 0.68, 0.79, 0.94]
df = pd.DataFrame(list(zip(pos, val)), columns=["position", "value"])
base = (pln.ggplot(df)) # Constructing the plot
shown = pln.aes(x="position", y="value")
bars = pln.geom_bar(stat="identity")
plt1 = base+shown+bars
plt1 #Showing the plot
Сообщения об ошибках
При импорте plotnine (или matplotlib),я получаю следующее сообщение:
"Backend TkAgg - интерактивный бэкэнд. Включение интерактивного режима."
Как только я генерирую окончательный график, я получаю следующее сообщение об ошибке:
C: \ Users \ user1 \ PycharmProjects \ test \ venv \ lib \ site-packages \ mizani \ bounds.py: 221: SettingWithCopyWarning: значение пытается быть установлено для копии фрагмента из DataFrame. См. Предупреждения вдокументация: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy x [x == -np.inf] = range [0] C: \ Users \ user1 \ PycharmProjects \ test \ venv \ lib \ site-packages \ mizani \ bounds.py: 222: SettingWithCopyWarning: пытается установить значение для копии среза из DataFrame. См. Предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy x [x == np.inf] = range [1]
После показа графика я получаю следующие сообщения:
Traceback (последний вызов был последним): файл "",строка 1 в файле "C: \ Users \ hagk \ PycharmProjects \ test \ venv \ lib \ site-packages \ plotnine \ ggplot.py", строка 89, в файле repr plt.show () "C: \ Users \ hagk \ PycharmProjects \ test \ venv \ lib \ site-packages \ matplotlib \ pyplot.py ", строка 269, в show return _show (* args, ** kw) Файл" C: \ Users \ hagk \ "PycharmProjects \ test \ venv \ lib \ site-packages \ matplotlib \ cbook \ deprecation.py ", строка 413, в функции возврата оболочки (* args, ** kwargs)Файл "C: \ Users \ hagk \ PycharmProjects \ test \ venv \ lib \ site-packages \ matplotlib \ backend_bases.py", строка 3284, в файле show manager.canvas.figure.show (), файл "C: \ Users \ hagk"\ PycharmProjects \ test \ venv \ lib \ site-packages \ matplotlib \ figure.py ", строка 442, в шоу