Что делает “трудно кодированный” средний?

Это должно сделать работу. Это создает источник данных columndatas с местоположениями узлов x и y и именами узлов, к которым он подключен. Источник данных columndatas используется для построения меток.

#!/usr/bin/python3
import networkx as nx
from bokeh.io import show, output_notebook
from bokeh.models import Plot, Range1d, MultiLine, Circle, HoverTool, TapTool, BoxSelectTool
from bokeh.models.graphs import from_networkx, NodesAndLinkedEdges, EdgesAndLinkedNodes
from bokeh.palettes import Spectral4
from bokeh.models import LabelSet, ColumnDataSource

G=nx.karate_club_graph()

plot = Plot(plot_width=900, plot_height=500,
            x_range=Range1d(-1.1,1.1), y_range=Range1d(-1.1,1.1))
plot.title.text = "Graph Interaction Demonstration"

plot.add_tools(HoverTool(tooltips=None), TapTool(), BoxSelectTool())

graph_renderer = from_networkx(G, nx.circular_layout, scale=1, center=(0,0))


graph_renderer.node_renderer.glyph = Circle(size=15, fill_color=Spectral4[0])
graph_renderer.node_renderer.selection_glyph = Circle(size=15, fill_color=Spectral4[2])
graph_renderer.node_renderer.hover_glyph = Circle(size=15, fill_color=Spectral4[1])
graph_renderer.node_renderer.glyph.properties_with_values()
graph_renderer.edge_renderer.glyph = MultiLine(line_color="#CCCCCC", line_alpha=0.8, line_width=5)
graph_renderer.edge_renderer.selection_glyph = MultiLine(line_color=Spectral4[2], line_width=5)
graph_renderer.edge_renderer.hover_glyph = MultiLine(line_color=Spectral4[1], line_width=5)
graph_renderer.selection_policy = NodesAndLinkedEdges()
graph_renderer.inspection_policy = EdgesAndLinkedNodes()
plot.renderers.append(graph_renderer)

clubs = nx.get_node_attributes(G, 'club')
x, y = zip(*graph_renderer.layout_provider.graph_layout.values())
data = {'x': list(x), 'y': list(y), 'connectionNames': []}
for node in clubs.keys():
    connectionStr = ''
    for edge in G.edges:
        if edge[0] == node:
            connectionStr += clubs[edge[1]] + ', '
        elif edge[1] == node:
            connectionStr += clubs[edge[0]] + ', '
    data['connectionNames'].append(connectionStr.rstrip())
source = ColumnDataSource(data)
labels = LabelSet(x='x', y='y', text='connectionNames', source=source)
plot.renderers.append(labels)

show(plot)
22
задан Noumenon 20 January 2016 в 13:19
поделиться

2 ответа

«жесткое кодирование» означает включение чего-либо в исходный код. Если вы не жестко кодируете, то вы делаете что-то вроде запроса у пользователя данных, или позволяете пользователю вводить данные в командную строку, или что-то в этом роде.

Итак, слишком сложно. закодируйте расположение файла на диске C:, вы просто поместите путь к файлу вместе в исходный код.

Вот пример.

int main()
{
    const char *filename = "C:\\myfile.txt";

    printf("Filename is: %s\n", filename);
}

Имя файла "жестко закодировано" как : C: \ myfile.txt

Причина, по которой обратная косая черта удваивается, заключается в том, что обратная косая черта является особенной в строках C.

47
ответ дан 29 November 2019 в 03:48
поделиться

Существует два типа кодирования.

(1) жесткое кодирование (2) мягкое кодирование

Жесткое кодирование. Присвойте значения программе во время записи исходного кода и сделайте исполняемый файл программы. Теперь, это - очень трудный процесс, чтобы изменить или изменить значения исходного кода программы. как в технологии блокчейна, блок происхождения является твердым кодом, который не может измененный или измененный.

Мягкое кодирование: это - процесс вставки значений из внешнего источника в компьютерную программу. как вставка оценивает через клавиатуру, интерфейс командной строки. Мягкое кодирование рассмотрело как хорошую практику программирования, потому что разработчики могут легко изменить программы.

0
ответ дан 29 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: