Beispiel #1
0
def plot_chnx_sample():
    df = pd.read_csv(DATA_URL + '/fanti.edgelist',
                     sep='\t',
                     header=None,
                     names=['ch1', 'ch2'])
    df = df.head(100)
    df.drop_duplicates(keep='first', inplace=True)

    nodes = [{
        "name": ch,
        "symbolSize": 10
    } for ch in set(df['ch1'].unique()) | set(df['ch2'].unique())]
    links = [{"source": value[0], "target": value[1]} for value in df.values]
    graph = Graph("汉字-样例关系图", width=1200, height=600)
    graph.add("",
              nodes,
              links,
              repulsion=80,
              layout=None,
              graph_edge_length=150,
              is_roam=True,
              is_label_show=True,
              is_legend_show=True,
              draggable=False,
              lineStyle='-.',
              graph_edge_symbol=['circle', 'arrow'])
    graph.render()
    context = dict(myechart=graph.render_embed(),
                   host='/static/js',
                   script_list=graph.get_js_dependencies())
    return context
Beispiel #2
0
class Mutdraw():
    def __init__(self):
        self.attr = [
            "ASD", "SCZ", "BPD", "DD", "DEE", "EE", "ID", "OCD", "TS", "CHD",
            "control"
        ]
        self.v1 = [
            173712, 1038, 69, 8336, 288, 580, 1432, 26, 441, 1900, 51093
        ]
        self.attr2 = ["ASD", "SCZ", "BPD", "ID", "control"]
        self.v2 = [486, 66, 25, 81, 121]
        self.attr3 = ["ASD", "SCZ", "BPD", "MDD", "ADHD"]
        self.v3 = [292, 641, 84, 36, 35]
        self.pie1 = Pie("DNM",
                        width=500,
                        height=300,
                        title_pos="center",
                        title_top="bottom")
        self.pie2 = Pie("CNV",
                        width=500,
                        height=300,
                        title_pos="center",
                        title_top="bottom")
        self.pie1.add("",
                      self.attr,
                      self.v1,
                      legend_pos="left",
                      legend_text_size=8,
                      is_toolbox_show=False)
        self.pie2.add("",
                      self.attr2,
                      self.v2,
                      legend_pos="left",
                      legend_text_size=8,
                      is_toolbox_show=False)
        self.nodes = [{"name": "x"}, {"name": "y"}, {"name": "z"}]
        self.links = [{
            "source": "x",
            "target": "y"
        }, {
            "source": "x",
            "target": "z"
        }]
        self.graph = Graph("Graph", "PPI")
        self.graph.add("Pt", self.nodes, self.links)
        """

		self.grid=Grid()
		self.grid.add(self.pie1,grid_left="70%")
		self.grid.add(self.pie2,grid_right="70%")
		"""

    def drawPie(self):
        return self.pie1.render_embed()

    def drawPie2(self):
        return self.pie2.render_embed()

    def drawGraph(self):
        return self.graph.render_embed()
Beispiel #3
0
 def get(self, request, *args, **kwargs):
     from py2neo import Graph as neo4j
     template_name = 'echart/echart.html'
     echart = Graph("关系图谱")
     graph = neo4j('http://192.168.134.4:7474',
                   username='******',
                   password='******')
     data1 = graph.run(
         "match(n1:Actor{name:'沈腾'})-[r1]->(m1:Movie) return n1.name,type(r1),m1.name;"
     ).to_table()
     data2 = graph.run(
         "match(n1:Actor{name:'沈腾'})-[r1]->(m1:Movie)<-[r2]-(n2:Actor) return n2.name,type(r2),m1.name;"
     ).to_table()
     nodes = [
         {
             "name": "沈腾",
             "symbolSize": 10,
             "category": 1
         },
     ]
     links = []
     for d in data1:
         nodes.append({"name": d[2], "symbolSize": 20, "category": 0})
         links.append({"source": d[0], "target": d[2]})
     for d in data2:
         nodes.append({"name": d[0], "symbolSize": 10, "category": 1})
         links.append({"source": d[0], "target": d[2]})
     categories = ["电影", "演员"]
     # print(nodes)
     # print(links)
     echart.add("测试",
                nodes,
                links,
                categories=categories,
                is_label_show=True,
                is_focusnode=True,
                is_roam=True,
                is_rotatelabel=True,
                graph_repulsion=150)
     context = dict(myechart=echart.render_embed(),
                    host=REMOTE_HOST,
                    script_list=echart.get_js_dependencies())
     return render(request, template_name, context)
Beispiel #4
0
def plot_chnx(ch1=None, ch2=None, check_code=None):
    # df = pd.read_csv(DATA_URL + '/chinese_characters.csv')
    df = pd.read_csv(DATA_URL + '/fanti.edgelist',
                     sep='\t',
                     header=None,
                     names=['ch1', 'ch2'])
    df.drop_duplicates(keep='first', inplace=True)

    if check_code in [1, 5]:
        df = df.loc[(df['ch1'] == ch1) | (df['ch2'] == ch1)]
        nodes = [{
            "name": ch,
            "symbolSize": 10,
            "itemStyle": {
                "normal": {
                    "color": 'red'
                }
            }
        } for ch in set(df['ch1'].unique()) | set(df['ch2'].unique())]
        links = [{
            "source": value[0],
            "target": value[1],
            "lineStyle": {
                "normal": {
                    "color": 'green'
                }
            }
        } for value in df.values]
        graph = Graph("汉字-关系图", width=1200, height=600)
        graph.add("",
                  nodes,
                  links,
                  repulsion=80,
                  layout="force",
                  graph_edge_length=150,
                  is_roam=True,
                  is_label_show=True,
                  is_legend_show=True,
                  draggable=True,
                  lineStyle='-.',
                  graph_edge_symbol=['circle', 'arrow'])
        graph.render()
    elif check_code == 4:
        df = df.loc[(df['ch1'] == ch1) | (df['ch2'] == ch1) |
                    (df['ch1'] == ch2) | (df['ch2'] == ch2)]
        df1 = df.loc[((df['ch1'] == ch1) & (df['ch2'] != ch2)) |
                     ((df['ch2'] == ch1) & (df['ch1'] != ch2))]
        df2 = df.loc[((df['ch1'] == ch2) & (df['ch2'] != ch1)) |
                     ((df['ch2'] == ch2) & (df['ch1'] != ch1))]
        df3 = df.loc[((df['ch1'] == ch1) & (df['ch2'] == ch2)) |
                     ((df['ch2'] == ch1) & (df['ch1'] == ch2))]

        nodes = [{
            "name": ch,
            "symbolSize": 10,
            "itemStyle": {
                "normal": {
                    "color": 'red'
                }
            }
        } for ch in set(df1['ch1'].unique()) | set(df1['ch2'].unique())]
        nodes += [{
            "name": ch,
            "symbolSize": 10,
            "itemStyle": {
                "normal": {
                    "color": 'blue'
                }
            }
        } for ch in set(df2['ch1'].unique()) | set(df2['ch2'].unique())]

        links = [{
            "source": value[0],
            "target": value[1],
            "lineStyle": {
                "normal": {
                    "color": 'PaleTurquoise'
                }
            }
        } for value in df1.values]
        links += [{
            "source": value[0],
            "target": value[1],
            "lineStyle": {
                "normal": {
                    "color": 'gray'
                }
            }
        } for value in df2.values]
        links += [{
            "source": value[0],
            "target": value[1],
            "lineStyle": {
                "normal": {
                    "color": 'Teal'
                }
            }
        } for value in df3.values]

        graph = Graph("汉字-关系图", width=1200, height=600)
        graph.add("",
                  nodes,
                  links,
                  repulsion=80,
                  layout="force",
                  graph_edge_length=150,
                  is_roam=True,
                  is_label_show=True,
                  is_legend_show=True,
                  draggable=True,
                  lineStyle='-.',
                  graph_edge_symbol=['circle', 'arrow'])
        graph.render()

    elif check_code == 6:
        df = df.loc[(df['ch1'] == ch2) | (df['ch2'] == ch2)]
        nodes = [{
            "name": ch,
            "symbolSize": 10,
            "itemStyle": {
                "normal": {
                    "color": 'red'
                }
            }
        } for ch in set(df['ch1'].unique()) | set(df['ch2'].unique())]
        links = [{
            "source": value[0],
            "target": value[1],
            "lineStyle": {
                "normal": {
                    "color": 'green'
                }
            }
        } for value in df.values]
        graph = Graph("汉字-关系图", width=1200, height=600)
        graph.add("",
                  nodes,
                  links,
                  repulsion=80,
                  layout="force",
                  graph_edge_length=150,
                  is_roam=True,
                  is_label_show=True,
                  is_legend_show=True,
                  draggable=True,
                  lineStyle='-.',
                  graph_edge_symbol=['circle', 'arrow'])
        graph.render()

    context = dict(myechart=graph.render_embed(),
                   host='/static/js',
                   script_list=graph.get_js_dependencies())
    context.update(network_info(ch1, ch2))
    return context
def create_charts(data):
    page = Page()
    style = Style(width=900, height=900)
    html = ''

    html_before = data['full'][0]
    html_after = data['full'][1]
    nodes_full = data['full'][2]
    links_full = data['full'][3]
    category=data['full'][4]
    chart = Graph("全唐诗人关系图", **style.init_style)
    chart.add("", nodes_full, links_full,category, line_color='#aaa', label_pos="center",
              is_label_show=True, graph_repulsion=1000, is_legend_show=True,
              line_curve=0.4, label_text_color="#000", graph_layout='circular',
              label_emphasis_textcolor='#000')
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    # style = Style(width=900, height=600)

    html_before = data['early'][0]
    html_after = data['early'][1]
    nodes_early = data['early'][2]
    links_early = data['early'][3]

    chart = Graph("初唐诗人关系图", **style.init_style)
    chart.add("", nodes_early, links_early, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['middle'][0]
    html_after = data['middle'][1]
    nodes_middle = data['middle'][2]
    links_middle = data['middle'][3]
    chart = Graph("中唐诗人关系图", **style.init_style)
    chart.add("", nodes_middle, links_middle, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['high'][0]
    html_after = data['high'][1]
    nodes_high = data['high'][2]
    links_high = data['high'][3]
    chart = Graph("盛唐诗人关系图", **style.init_style)
    chart.add("", nodes_high, links_high, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['late'][0]
    html_after = data['late'][1]
    nodes_late = data['late'][2]
    links_late = data['late'][3]
    chart = Graph("晚唐诗人关系图", **style.init_style)
    chart.add("", nodes_late, links_late, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)




    # 最后
    script = page.get_js_dependencies()
    return html, script