Я использую пакет Networkx для создания визуализация ассоциаций клиента, поэтому пользователь может ввести номер клиента, и появится вся соответствующая информация. Я написал код для того же самого. Есть два столбца, содержащие информацию о клиентах первого уровня (PATY_HI и PATY_LO), два столбца для хранения сведений о том, как связаны клиенты, и столбец WEIGHT. Теперь я создал график и хочу раскрасить его ребра в соответствии со столбцом веса. Проблема, с которой я столкнулся, заключается в том, что цвет краев заполняется правильно только тогда, когда пользовательский ввод присутствует в PATY_HI, когда пользовательский ввод присутствует в PATY_LO, цвет края не появляется. Я не могу исправить то же самое. Может ли кто-нибудь помочь мне в решении того же? Вот код, который я написал для цвета края. Таким образом, со ссылкой на приведенную таблицу, когда пользовательский ввод присутствует в PATY_HI как 12345, цвет края правильно заполняется как красный, со ссылкой на приведенный пример, но в случае, когда 12345 присутствует в PATY_LO, цвет края желтый не появляется.
Написанный мной код:
Фильтрация кадров данных на основе выбранного значения PATY_HI
# Apply the format_cif function to the user input
cif = format_cif(cif)
# Get the active Snowflake session
session = get_active_session()
def network_graph(df_1, paty_hi):
# Filter dataframe based on selected PATY_HI value
filtered_df = df_1[(df_1['PATY_HI'] == paty_hi) | (df_1['PATY_LO'] == paty_hi)]
# Sort the dataframe by the date column in descending order
filtered_df = filtered_df.sort_values('EXPY_D', ascending=False)
# Create an empty graph
G = nx.Graph()
# Adding the nodes using CustomerIDs from both columns
G.add_nodes_from(filtered_df['PATY_HI'], label='')
G.add_nodes_from(filtered_df['PATY_LO'], label='')
# Dictionary to store the latest match_key for each pair of nodes
latest_match_key = {}
# Add edges to the graph based on associations
for _, row in filtered_df.iterrows():
paty_hi = row['PATY_HI']
paty_lo = row['PATY_LO']
match_key = row['MATCH_KEY']
# Only add the edge if it's the latest match_key for the pair
if (paty_hi, paty_lo) not in latest_match_key:
G.add_edge(paty_hi, paty_lo)
latest_match_key[(paty_hi, paty_lo)] = match_key
# Define the default color
default_color = 'black'
# Set node labels based on PATY_HI, PATY_HI_NAME, PATY_LO, and PATY_LO_NAME
node_labels = {}
for _, row in filtered_df.iterrows():
if row['PATY_HI'] not in node_labels:
node_labels[row['PATY_HI']] = row['PATY_HI_NAME']
if row['PATY_LO'] not in node_labels:
node_labels[row['PATY_LO']] = row['PATY_LO_NAME']
# Set edge weights based on the latest match_key
edge_weights = {}
for (paty_hi, paty_lo), match_key in latest_match_key.items():
edge_weights[(paty_hi, paty_lo)] = match_key
# Set edge colors based on the weight bucket
edge_colors = {}
for _, row in filtered_df.iterrows():
paty_hi = row['PATY_HI']
paty_lo = row['PATY_LO']
weight_bucket = row['WEIGHT_BUCKET']
if pd.notnull(weight_bucket): # Check if the weight bucket is not NaN
if (paty_hi, paty_lo) not in edge_colors:
edge_colors[(paty_hi, paty_lo)] = weight_bucket
# Replace NaN values with a default color
default_color = 'black'
edge_colors = {k: v if pd.notnull(v) else default_color for k, v in edge_colors.items()}
#Adding Abbreviations to the graph
abbrev_dict ={
"A": "Address",
"J": "Account",
"R": "Declared Relationship",
"P": "Contact Number",
"E": "Email",
"F": "Application",
"T": "Transaction",
"$Sent": "Color Codes",
"T - Blue": "
Подробнее здесь: [url]https://stackoverflow.com/questions/79287964/adding-edge-color-to-the-network-graph-using-networkx-package[/url]
Я использую пакет Networkx для создания визуализация ассоциаций клиента, поэтому пользователь может ввести номер клиента, и появится вся соответствующая информация. Я написал код для того же самого. Есть два столбца, содержащие информацию о клиентах первого уровня (PATY_HI и PATY_LO), два столбца для хранения сведений о том, как связаны клиенты, и столбец WEIGHT. Теперь я создал график и хочу раскрасить его ребра в соответствии со столбцом веса. Проблема, с которой я столкнулся, заключается в том, что цвет краев заполняется правильно только тогда, когда пользовательский ввод присутствует в PATY_HI, когда пользовательский ввод присутствует в PATY_LO, цвет края не появляется. Я не могу исправить то же самое. Может ли кто-нибудь помочь мне в решении того же? Вот код, который я написал для цвета края. Таким образом, со ссылкой на приведенную таблицу, когда пользовательский ввод присутствует в PATY_HI как 12345, цвет края правильно заполняется как красный, со ссылкой на приведенный пример, но в случае, когда 12345 присутствует в PATY_LO, цвет края желтый не появляется. Написанный мной код: Фильтрация кадров данных на основе выбранного значения PATY_HI [code]# Apply the format_cif function to the user input cif = format_cif(cif)
# Get the active Snowflake session session = get_active_session()
def network_graph(df_1, paty_hi):
# Filter dataframe based on selected PATY_HI value filtered_df = df_1[(df_1['PATY_HI'] == paty_hi) | (df_1['PATY_LO'] == paty_hi)]
# Sort the dataframe by the date column in descending order filtered_df = filtered_df.sort_values('EXPY_D', ascending=False)
# Create an empty graph G = nx.Graph()
# Adding the nodes using CustomerIDs from both columns G.add_nodes_from(filtered_df['PATY_HI'], label='') G.add_nodes_from(filtered_df['PATY_LO'], label='')
# Dictionary to store the latest match_key for each pair of nodes latest_match_key = {}
# Add edges to the graph based on associations for _, row in filtered_df.iterrows(): paty_hi = row['PATY_HI'] paty_lo = row['PATY_LO'] match_key = row['MATCH_KEY']
# Only add the edge if it's the latest match_key for the pair if (paty_hi, paty_lo) not in latest_match_key: G.add_edge(paty_hi, paty_lo) latest_match_key[(paty_hi, paty_lo)] = match_key
# Define the default color default_color = 'black'
# Set node labels based on PATY_HI, PATY_HI_NAME, PATY_LO, and PATY_LO_NAME node_labels = {} for _, row in filtered_df.iterrows(): if row['PATY_HI'] not in node_labels: node_labels[row['PATY_HI']] = row['PATY_HI_NAME'] if row['PATY_LO'] not in node_labels: node_labels[row['PATY_LO']] = row['PATY_LO_NAME']
# Set edge weights based on the latest match_key edge_weights = {} for (paty_hi, paty_lo), match_key in latest_match_key.items(): edge_weights[(paty_hi, paty_lo)] = match_key
# Set edge colors based on the weight bucket edge_colors = {} for _, row in filtered_df.iterrows(): paty_hi = row['PATY_HI'] paty_lo = row['PATY_LO'] weight_bucket = row['WEIGHT_BUCKET']
if pd.notnull(weight_bucket): # Check if the weight bucket is not NaN if (paty_hi, paty_lo) not in edge_colors: edge_colors[(paty_hi, paty_lo)] = weight_bucket
# Replace NaN values with a default color default_color = 'black' edge_colors = {k: v if pd.notnull(v) else default_color for k, v in edge_colors.items()}
Я разрабатываю проект на Python, в котором использую библиотеку tkinter для отображения графического интерфейса моего приложения. Проблема, с которой я столкнулся, заключается в необходимости представить сетевой граф в моей программе. Я уже нашел...
Я создал сетевую диаграмму, используя Python, networkx и pyvis. По умолчанию диаграмма визуально менялась каждый раз, когда я ее открываю/обновляю. Чтобы остановить это, я добавил следующий код
# Compute static positions for nodes
positions =...
Для приведенного ниже кода:
std::error_code ec;
auto long_path = std::filesystem::canonical( W:\\31\\arawat.fielsystem_default_check\\matlab\\check_std\\check_std\\ ).string();
Для приведенного ниже кода:
std::error_code ec;
auto long_path = std::filesystem::canonical( W:\\31\\arawat.fielsystem_default_check\\matlab\\check_std\\check_std\\ ).string();
Для приведенного ниже кода:
std::error_code ec;
auto long_path = std::filesystem::canonical( W:\\31\\arawat.fielsystem_default_check\\matlab\\check_std\\check_std\\ ).string();