Изменение цвета фона в графическом инструменте

Я собираюсь использовать пакет Python с именем graph-tool для визуализировать графики. Почему-то он каждый раз при сохранении графика задает серый цвет фона, что выглядит далеко не приятно. Кто-нибудь знает, как изменить его на белый?

Например, этот пример кода:

from graph_tool.all import *
g = price_network(5000)
p = sfdp_layout(g)
graph_draw(g, pos=p, output="example.png")

при запуске на ноутбуке iPython отображает график с белым фоном на экране, но сохраненное изображение имеет серый фон.

Результат один и тот же, какой бы формат не использовался для вывода (по крайней мере, с .png, .pdf и .svg). С networkX такой проблемы не было, но отрисовка графа там медленнее и гораздо менее гибкая.

Спасибо за любую помощь!


person kurtosis    schedule 22.09.2014    source источник


Ответы (2)


Вы должны просто передать опцию bg_color в функцию graph_draw(). Например:

graph_draw(g, pos=p, bg_color=[1,1,1,1], output="example.png")

будет создавать белый фон вместо прозрачного.

person Tiago Peixoto    schedule 23.09.2014
comment
Именно то, что мне было нужно, с одним аргументом! Спасибо. Я думаю, что это должно быть задокументировано на graph-tool.skewed.de/static/doc /draw.html - person kurtosis; 23.09.2014
comment
Надеюсь, что больше вопросов о StackOverflow сделает graph-tool более популярным инструментом для обработки графов. Пока что, я думаю, именно отсутствие вопросов в Интернете мешает графическому инструменту быть более конкурентоспособным, чем, например, networkX. - person kurtosis; 23.09.2014
comment
Да, это упущение. Добавлю в документацию. - person Tiago Peixoto; 23.09.2014
comment
@TiagoPeixoto Почему gprops={"bgcolor":"white"} не работает должным образом, он не отправляется в graphviz или аргументы graphviz неверны? - person Hooked; 23.09.2014
comment
@Hooked Вы путаете две разные функции, graph_draw() и graphviz_draw(). Второй использует графвиз, первый нет. Параметр gprops следует передавать только второй функции. (Обратите внимание, что graphviz_draw() устарел) - person Tiago Peixoto; 23.09.2014
comment
@TiagoPeixoto: в документации сказано, что bg_color может быть строкой, но я думаю, это неправда. graph-tool.skewed.de/static/doc/draw. html?highlight=bg_color - person jvdh; 04.07.2018

«Серый цвет фона», который вы видите, — это способ отображения прозрачного фона вашими зрителями PNG. Например, я вижу на своем экране шахматную доску:

введите здесь описание изображения

но когда я загружаю изображение или распечатываю его в любом месте, оно имеет (по умолчанию) белый фон:

введите здесь описание изображения

Выровняйте изображение в редакторе, чтобы удалить альфа-канал, если он вас беспокоит.

Теоретически вы должны иметь возможность передать gprops={"bgcolor":"white"} в graph_draw, но у меня это не работает.

person Hooked    schedule 22.09.2014
comment
Благодарю вас! Могу я спросить вас, не могли бы вы порекомендовать какое-нибудь бесплатное программное обеспечение для сглаживания png на Mac OSX? - person kurtosis; 22.09.2014
comment
@kurtosis Рад помочь! Если это отвечает на ваш вопрос, пожалуйста, примите ответ, чтобы мы знали, что это то, что вы ищете. Прекрасная бесплатная альтернатива фотошопу — GIMP — с его помощью довольно просто удалить альфа-канал! - person Hooked; 22.09.2014
comment
Наконец, я принял другой ответ, предоставляющий решение с единственным аргументом для graph_draw. Вы были почти правы насчет биколора! - person kurtosis; 23.09.2014