Есть ли способ получить статический график из lstudy?Python

Программы на Python
Anonymous
Есть ли способ получить статический график из lstudy?

Сообщение Anonymous »

У меня есть код, который создает сеть из файла .csv свойств академических работ, который был загружен из онлайн-базы данных, представленной Scopus.
В коде используется модульlitstudy. Это позволяет вам загрузить файл .csv как объект документа (определенный модулемlitstudy). Затем вы можете создавать сети из данных, то есть сеть авторов, которые опубликовали вместе, сеть статьи, в которых цитируются друг друга. Это также дает вам возможность построить этот сетевой график. Глядя на базу кода этого модуля, я вижу, что функция построения графика основана на модуле pyvis.
Основная проблема, с которой я столкнулся при использовании модуляlitstudy, заключается в том, что он создает графики с хорошей компоновкой, однако эти графики будут перемещаться, что затрудняет анализ результатов. прочитал в Интернете, что если вы измените свойство интерактивного функцииlitstudy.network.plot_network() на False, оно создаст статический график. Однако, когда я это сделаю, узлы будут построены. прямо друг на друга. Есть ли способ сохранить макет этого графика, но остановить его перемещение. Буду признателен за любую помощь. Я приложил снимок графика, когда для свойства интерактивного установлено значение True(https://i.sstatic.net/F0pDnKRV.png) и когда для свойства установлено значение False (https://i.sstatic.net/etHjeBvI.png).Код выглядит следующим образом:

Код: Выделить всё

soc_path = (
r'C:/Documents/Post_Doc/Writing_and_Learning/Lit_Review/Web_of_Science_Seagrass_Organic_Carbon.csv'
)

hab_path = (
r'C:/Documents/Post_Doc/Writing_and_Learning/Lit_Review/Web_of_Science_Seagrass_Habitat_Mapping.csv'
)

def scopus_doc_generator(path):# , year

docs = litstudy.load_scopus_csv(path.replace('.csv', '_amended.csv'))

#docs_refined = docs.filter_docs(lambda d: d.publication_year >= year)

docs_found, docs_not_found = litstudy.refine_crossref(docs)

return docs_found

soc_docs_found = scopus_doc_generator(soc_path) #, 2000

hab_map_docs_found = scopus_doc_generator(hab_path) #, 2000

total_docs_found = soc_docs_found | hab_map_docs_found

coauthor_network = litstudy.build_coauthor_network(total_docs_found)

litstudy.network.plot_network(
coauthor_network, max_node_size = 75, interactive = False
)
Я попробовал следующий код Python:

Код: Выделить всё

soc_path = (
r'C:/Documents/Post_Doc/Writing_and_Learning/Lit_Review/Web_of_Science_Seagrass_Organic_Carbon.csv'
)

hab_path = (
r'C:/Documents/Post_Doc/Writing_and_Learning/Lit_Review/Web_of_Science_Seagrass_Habitat_Mapping.csv'
)

def scopus_doc_generator(path):# , year

docs = litstudy.load_scopus_csv(path.replace('.csv', '_amended.csv'))

#docs_refined = docs.filter_docs(lambda d: d.publication_year >= year)

docs_found, docs_not_found = litstudy.refine_crossref(docs)

return docs_found

soc_docs_found = scopus_doc_generator(soc_path) #, 2000

hab_map_docs_found = scopus_doc_generator(hab_path) #, 2000

total_docs_found = soc_docs_found | hab_map_docs_found

coauthor_network = litstudy.build_coauthor_network(total_docs_found)

litstudy.network.plot_network(
coauthor_network, max_node_size = 75, interactive = False
)
Я ожидал получить статический график с узлами, которые не перекрывают друг друга.
Изменить:
Данные для обоих блокнотов хранятся в следующих репозиториях:
soc_csv
hab_csv

Подробнее здесь: https://stackoverflow.com/questions/784 ... m-litstudy

Вернуться в «Python»