def Sankey_Diagram(Labels, Source, Target, Values, ColorMap=None):
    import plotly.graph_objects as go
    from matplotlib import colors as colorlib
    from numpy import linspace

    from matplotlib import cm

    number_of_colors = len(Labels)
    color_prelist = [cm.Pastel1(n) for n in range(1, number_of_colors + 2)]

    colorlist = [
        "rgb(" + str(color_prelist[n][0]) + "," + str(color_prelist[n][1]) +
        "," + str(color_prelist[n][2]) + ")"
        for n in range(0, number_of_colors - 1)
    ]

    if ColorMap is not None:
        LinkColors = [[
            "rgba(" + str(color_prelist[n][0]) + "," +
            str(color_prelist[n][1]) + "," + str(color_prelist[n][2]) + ",0.5)"
            for n in range(0, number_of_colors - 1)
        ][i] for i in ColorMap]
    else:
        LinkColors = None
    # print([color for color in LinkColors])

    fig = go.Figure(data=[
        go.Sankey(
            node=dict(
                pad=15,
                thickness=20,
                line=dict(color="black", width=0.5),
                label=Labels,
                color=colorlist  #"blue"
            ),
            link=dict(
                source=
                Source,  # [0, 1, 0, 2, 3, 3],  # indices correspond to labels, eg A1, A2, A2, B1, ...
                target=Target,  #[2, 3, 3, 4, 4, 5],
                value=Values,  #[8, 4, 2, 8, 4, 2],
                color=LinkColors))
    ])

    fig.update_layout(title_text="Basic Sankey Diagram", font_size=10)
    # fig.show()
    return fig


# Test = Sankey_Diagram(['a','b','c','d','e','f'], [0, 1, 0, 2, 3, 3], [2, 3, 3, 4, 4, 5], [8, 4, 2, 8, 4, 2])
Esempio n. 2
0
# ------------------------
#      FUNCTIONS         #
# ------------------------

if __name__ == "__main__":
    g = Digraph('G', filename='calibration_full')

    # g.node(joint.parent, _attributes={'shape': 'ellipse'})
    # g.node(joint.child, _attributes={'shape': 'ellipse'})
    # g.edge(joint.parent, joint.child, color='black', style='dashed')

    # cmap = cm.Set3(np.linspace(0, 1, len(xml_robot.sensors)))
    # cmap = cm.Pastel2(np.linspace(0, 1, 2))

    cmap = cm.Pastel1(np.linspace(0, 1, 4 * 2))
    # cmap = cm.viridis(np.linspace(0, 1, len(xml_robot.sensors)))
    # cmap = cm.brg(np.linspace(0, 1, 4))
    # cmap = cm.Pastel1(np.linspace(0, 1, 4*2))

    i = 0
    black = matplotlib.colors.rgb2hex([0, 0, 0])
    gray = matplotlib.colors.rgb2hex([0.4, 0.4, 0.4])

    # rgb1 = matplotlib.colors.rgb2hex(cmap[0, 0:3])
    # print(rgb1)
    # rgb2 = matplotlib.colors.rgb2hex(cmap[1, 0:3])
    # rgb3 = matplotlib.colors.rgb2hex(cmap[2, 0:3])
    rgb1 = 'darksalmon'
    rgb2 = 'lightsteelblue'
    rgb3 = 'darkseagreen'
Esempio n. 3
0
                                 initialQ=np.zeros([mdp.nActions,
                                                    mdp.nStates]),
                                 nEpisodes=nEpisodes,
                                 nSteps=nSteps,
                                 epsilon=epsilon)
        accRewards[i, :] += acc_rewards
    accRewards[i, :] /= trials

# print('epsilon = 0.05:\nQ:\n{}\npolicy = {}'.format(0.05,Q,policy))
# [Q,policy,acc_rewards2] = rlProblem.qLearning(s0=0,initialQ=np.zeros([mdp.nActions,mdp.nStates]),nEpisodes=200,nSteps=100,epsilon=0.1)
# [Q,policy,acc_rewards3] = rlProblem.qLearning(s0=0,initialQ=np.zeros([mdp.nActions,mdp.nStates]),nEpisodes=200,nSteps=100,epsilon=0.3)
# [Q,policy,acc_rewards4] = rlProblem.qLearning(s0=0,initialQ=np.zeros([mdp.nActions,mdp.nStates]),nEpisodes=200,nSteps=100,epsilon=0.5)

labels = ["epsilon = {}".format(epsilon) for epsilon in epsilons]
N = len(epsilons)
colors = cm.Pastel1(list(range(N)))
x = np.arange(nEpisodes)
# fig,ax = plt.subplots()
# ax.set_xticks(list(i for i in range(0,nSteps)))
# plt.xlim(0,nSteps)
for i in range(N):
    plt.plot(x, accRewards[i, :], label=labels[i], color=colors[i])
plt.grid()
plt.title("Cumulative Rewards for different epsilons")
plt.ylabel("Cumulative Discounted Rewards")
plt.xlabel("Episode")
plt.legend(loc='lower right')
plt.savefig("plot2.png")
plt.close()

# import numpy as np
Esempio n. 4
0
import webbrowser
from wordcloud import WordCloud, STOPWORDS
import subprocess
from datetime import datetime
import networkx as nx
import nxviz as nxv

#####
from matplotlib import cm
words = ['Biological Process', 'Molecular Function', 'Cellular Component']
pie_colors = {
    'Set3': cm.Set3(np.arange(12) / 12.),
    'Set2': cm.Set2(np.arange(8) / 8.),
    'Set1': cm.Set1(np.arange(9) / 9.),
    'Pastel2': cm.Pastel2(np.arange(8) / 8.),
    'Pastel1': cm.Pastel1(np.arange(9) / 9.),
    'Dark2': cm.Dark2(np.arange(8) / 8.),
    'Paired': cm.Paired(np.arange(12) / 12.),
    'Accent': cm.Accent(np.arange(8) / 8.),
    'Spectral': cm.Spectral(np.arange(11) / 11.)
}
colors = {
    '#8DD3C7': pie_colors['Set3'][0:1],
    '#FFFFB3': pie_colors['Set3'][1:2],
    '#BEBADA': pie_colors['Set3'][2:3],
    '#FB8072': pie_colors['Set3'][3:4],
    '#80B1D3': pie_colors['Set3'][4:5],
    '#FDB462': pie_colors['Set3'][5:6],
    '#B3DE69': pie_colors['Set3'][6:7],
    '#FCCDE5': pie_colors['Set3'][7:8],
    '#D9D9D9': pie_colors['Set3'][8:9],
Esempio n. 5
0
def generate__colors(colorType="default",
                     nColors=10,
                     seaborn=True,
                     howto=False):

    if (howto == True):
        print(
            "[generate__colors.py] generate__colors( colorType=, nColors=, seaborn=T/F, howto=T/F )"
        )
        print( "[generate__colors.py] colorType = [ \ \n"\
               "default, bright, deep, muted, colorblind, pastel, \n"\
               "jet, tab10, tab20, hsv, accent, pastel1, pastel2, set1, set2, set3 \n"\
               " ] ")
        return ()

    # ------------------------------------------------- #
    # --- [1] generate colors                       --- #
    # ------------------------------------------------- #

    if (not (seaborn)):

        if (colorType.lower() == "jet"):
            colors = [cm.jet(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "tab10"):
            colors = [cm.tab10(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "tab20"):
            colors = [cm.tab20(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "hsv"):
            colors = [cm.hsv(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "accent"):
            colors = [cm.Accent(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "pastel1"):
            colors = [cm.Pastel1(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "pastel2"):
            colors = [cm.Pastel2(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "set1"):
            colors = [cm.Set1(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "set2"):
            colors = [cm.Set2(ik / float(nColors)) for ik in range(nColors)]

        elif (colorType.lower() == "set3"):
            colors = [cm.Set3(ik / float(nColors)) for ik in range(nColors)]

        else:
            print("[generate__colors.py] colorType  == ?? ")
            sys.exit()

    else:

        if (colorType.lower() == "jet"):
            print("[generate__colors.py]  no jet palette for seaborn")
            sys.exit()

        elif (colorType.lower() == "default"):
            colors = sns.color_palette(n_colors=nColors)

        elif (colorType.lower() == "deep"):
            colors = sns.color_palette(palette="deep", n_colors=nColors)

        elif (colorType.lower() == "colorblind"):
            colors = sns.color_palette(palette="colorblind", n_colors=nColors)

        elif (colorType.lower() == "dark"):
            colors = sns.color_palette(palette="dark", n_colors=nColors)

        elif (colorType.lower() == "bright"):
            colors = sns.color_palette(palette="bright", n_colors=nColors)

        elif (colorType.lower() == "muted"):
            colors = sns.color_palette(palette="muted", n_colors=nColors)

        elif (colorType.lower() == "pastel"):
            colors = sns.color_palette(palette="pastel", n_colors=nColors)

        elif (colorType.lower() == "hsv"):
            colors = sns.color_palette(palette="hsv", n_colors=nColors)

        elif (colorType.lower() == "accent"):
            colors = sns.color_palette(palette="Accent", n_colors=nColors)

        elif (colorType.lower() == "pastel1"):
            colors = sns.color_palette(palette="Pastel1", n_colors=nColors)

        elif (colorType.lower() == "pastel2"):
            colors = sns.color_palette(palette="Pastel2", n_colors=nColors)

        elif (colorType.lower() == "tab10"):
            colors = sns.color_palette(palette="tab10", n_colors=nColors)

        elif (colorType.lower() == "tab20"):
            colors = sns.color_palette(palette="tab20", n_colors=nColors)

        elif (colorType.lower() == "set1"):
            colors = sns.color_palette(palette="Set1", n_colors=nColors)

        elif (colorType.lower() == "set2"):
            colors = sns.color_palette(palette="Set2", n_colors=nColors)

        elif (colorType.lower() == "set3"):
            colors = sns.color_palette(palette="Set3", n_colors=nColors)

        else:
            colors = sns.color_palette(palette=colorType, n_colors=nColors)

    # ------------------------------------------------- #
    # --- [2] return                                --- #
    # ------------------------------------------------- #
    return (colors)
Esempio n. 6
0
 def fill_square(x, y, s):
     plt.fill([x, x, x + s, x + s], [y, y + s, y + s, y],
              color=colormap.Pastel1(rand()))
Esempio n. 7
0
    fig, ax = plt.subplots(1, 10, figsize=(10, 10))

    for i in range(10):
        c = km.cluster_centers_[i]
        ax[i].matshow(c.reshape(8, 8) * 255.0, cmap='gray')
        ax[i].set_xticks([])
        ax[i].set_yticks([])

    plt.show()

    # Perform t-SNE on the clustered dataset
    tsne = TSNE(n_components=2, perplexity=20.0, random_state=1000)
    X_tsne = tsne.fit_transform(X_train)

    fig, ax = plt.subplots(figsize=(18, 10))

    # Show the t-SNE clustered dataset
    for i in range(X_tsne.shape[0]):
        ax.scatter(X_tsne[i, 0],
                   X_tsne[i, 1],
                   marker='o',
                   color=cm.Pastel1(Y[i]),
                   s=150)
        ax.annotate('%d' % Y[i], xy=(X_tsne[i, 0] - 0.5, X_tsne[i, 1] - 0.5))

    ax.set_xlabel(r'$x_0$')
    ax.set_ylabel(r'$x_1$')
    ax.grid()

    plt.show()
Esempio n. 8
0
def stack2dim(raw, i, j, rotation=0, location='upper right'):
    '''
    此函数是为了画两个维度标准化的堆积柱状图
    raw为pandas的DataFrame数据框
    i、j为两个分类变量的变量名称,要求带引号,比如"school"
    rotation:水平标签旋转角度,默认水平方向,如标签过长,可设置一定角度,比如设置rotation = 40
    location:分类标签的位置,如果被主体图形挡住,可更改为'upper left'
    '''
    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    import math

    data_raw = pd.crosstab(raw[i], raw[j])
    data = data_raw.div(data_raw.sum(1), axis=0)  # 交叉表转换成比率,为得到标准化堆积柱状图

    # 计算x坐标,及bar宽度
    createVar = locals()
    x = [0]  # 每个bar的中心x轴坐标
    width = []  # bar的宽度
    k = 0
    for n in range(len(data)):
        # 根据频数计算每一列bar的宽度
        createVar['width' + str(n)] = list(data_raw.sum(axis=1))[n] / sum(
            data_raw.sum(axis=1))
        width.append(createVar['width' + str(n)])
        if n == 0:
            continue
        else:
            k += createVar['width' + str(n - 1)] / 2 + createVar[
                'width' + str(n)] / 2 + 0.05
            x.append(k)

    # 以下是通过频率交叉表矩阵生成一串对应堆积图每一块位置数据的数组,再把数组转化为矩阵
    y_mat = []
    n = 0
    y_level = len(data.columns)
    for p in range(data.shape[0]):
        for q in range(data.shape[1]):
            n += 1
            y_mat.append(data.iloc[p, q])
            if n == data.shape[0] * data.shape[1]:
                break
            elif n % y_level != 0:
                y_mat.extend([0] * (len(data) - 1))
            elif n % y_level == 0:
                y_mat.extend([0] * len(data))

    y_mat = np.array(y_mat).reshape(-1, len(data))
    y_mat = pd.DataFrame(y_mat)  # bar图中的y变量矩阵,每一行是一个y变量

    # 通过x,y_mat中的每一行y,依次绘制每一块堆积图中的每一块图

    from matplotlib import cm
    cm_subsection = [level for level in range(y_level)]
    colors = [cm.Pastel1(color) for color in cm_subsection]

    bottom = [0] * y_mat.shape[1]
    createVar = locals()
    for row in range(len(y_mat)):
        createVar['a' + str(row)] = y_mat.iloc[row, :]
        color = colors[row % y_level]

        if row % y_level == 0:
            bottom = bottom = [0] * y_mat.shape[1]
            if math.floor(row / y_level) == 0:
                label = data.columns.name + ': ' + str(data.columns[row])
                plt.bar(x,
                        createVar['a' + str(row)],
                        width=width[math.floor(row / y_level)],
                        label=label,
                        color=color)
            else:
                plt.bar(x,
                        createVar['a' + str(row)],
                        width=width[math.floor(row / y_level)],
                        color=color)
        else:
            if math.floor(row / y_level) == 0:
                label = data.columns.name + ': ' + str(data.columns[row])
                plt.bar(x,
                        createVar['a' + str(row)],
                        bottom=bottom,
                        width=width[math.floor(row / y_level)],
                        label=label,
                        color=color)
            else:
                plt.bar(x,
                        createVar['a' + str(row)],
                        bottom=bottom,
                        width=width[math.floor(row / y_level)],
                        color=color)

        bottom += createVar['a' + str(row)]

    plt.title(j + ' vs ' + i)
    group_labels = [str(name) for name in data.index]
    plt.xticks(x, group_labels, rotation=rotation)
    plt.ylabel(j)
    plt.legend(shadow=True, loc=location)
    plt.show()
    plt.close()
Esempio n. 9
0
def df_input(dfUniprot=DataFrame([])):

    num_phylum = len(dfUniprot.PHYLUM.drop_duplicates())
    from matplotlib import cm
    set3 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Set3(np.arange(12) / 12.)
    ]
    set2 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Set2(np.arange(8) / 8.)
    ]
    set1 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Set1(np.arange(9) / 9.)
    ]
    pastel2 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Pastel2(np.arange(8) / 8.)
    ]
    pastel1 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Pastel1(np.arange(9) / 9.)
    ]
    dark2 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Dark2(np.arange(8) / 8.)
    ]
    paired = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Paired(np.arange(12) / 12.)
    ]
    accent = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Accent(np.arange(8) / 8.)
    ]
    spectral = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.Spectral(np.arange(11) / 11.)
    ]
    tab20 = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.tab20(np.arange(20) / 20.)
    ]
    tab20b = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.tab20b(np.arange(20) / 20.)
    ]
    tab20c = [
        matplotlib.colors.rgb2hex(tuple(i))
        for i in cm.tab20c(np.arange(20) / 20.)
    ]

    Colors1 = set2 + set1 + dark2 + paired + accent + spectral + tab20 + tab20b + tab20c
    Colors2 = accent + spectral + tab20 + tab20b + tab20c + set1 + set2 + dark2 + paired
    Colors3 = dark2 + paired + accent + spectral + tab20 + tab20b + tab20c + set1 + set2
    Colors4 = tab20b + tab20c + set1 + set2 + dark2 + paired + accent + spectral + tab20
    Colors5 = spectral + tab20 + tab20b + tab20c + set1 + set2 + dark2 + paired + accent

    pie_colors = {
        'Set3': cm.Set3(np.arange(12) / 12.),
        'Set2': cm.Set2(np.arange(8) / 8.),
        'Set1': cm.Set1(np.arange(9) / 9.),
        'Pastel2': cm.Pastel2(np.arange(8) / 8.),
        'Pastel1': cm.Pastel1(np.arange(9) / 9.),
        'Dark2': cm.Dark2(np.arange(8) / 8.),
        'Paired': cm.Paired(np.arange(12) / 12.),
        'Accent': cm.Accent(np.arange(8) / 8.),
        'Spectral': cm.Spectral(np.arange(11) / 11.),
        'tab20': cm.tab20(np.arange(20) / 20.),
        'tab20b': cm.tab20b(np.arange(20) / 20.),
        'tab20c': cm.tab20c(np.arange(20) / 20.)
    }
    circle_colors = {
        'Colors1': Colors1[0:num_phylum],
        'Colors2': Colors2[0:num_phylum],
        'Colors3': Colors3[0:num_phylum],
        'Colors4': Colors4[0:num_phylum],
        'Colors5': Colors5[0:num_phylum]
    }

    def tax_colors(color_list=circle_colors['Colors1'], taxx=dfUniprot):
        tax_cols = [
            'Entry', 'Tax_ID', 'KINGDOM', 'PHYLUM', 'CLASS', 'ORDER', 'FAMILY',
            'GENUS', 'SPECIES', 'Organism'
        ]
        new2 = taxx[tax_cols].drop_duplicates()
        #>>>>>>>>>>>>>>>>>>>>>>>>>>>
        phylum0 = new2.groupby(['PHYLUM'
                                ]).Entry.count().reset_index().sort_values(
                                    by='Entry',
                                    ascending=False).reset_index(drop=True)
        asign_color = {}
        for i, j in zip(phylum0.PHYLUM, color_list):
            if i == 'NA':
                asign_color[i] = 'black'
            else:
                asign_color[i] = j
        phylum0['phy_col'] = list(asign_color.values())
        # distribución de Class
        phylum1 = new2.groupby(['PHYLUM', 'CLASS']).Entry.count().reset_index()
        class0 = []
        class0_colors = []
        for i in phylum0.PHYLUM:
            for j in phylum1.PHYLUM:
                if i == j:
                    class0_colors.append(asign_color[j])
                    class0.append(phylum1[phylum1.PHYLUM == i].sort_values(
                        by='Entry', ascending=False).reset_index(drop=True))
                else:
                    pass
        class1 = pd.concat(class0).drop_duplicates()
        class1['class_col'] = class0_colors
        class0_colors_corregido = []
        for index, row in class1.iterrows():
            if row.PHYLUM == 'NA':
                if row.CLASS == 'NA':
                    class0_colors_corregido.append(row.class_col)
                else:
                    class0_colors_corregido.append('grey')
            else:
                if row.CLASS == 'NA':
                    class0_colors_corregido.append('black')
                else:
                    class0_colors_corregido.append(row.class_col)
        class1['class_col'] = class0_colors_corregido
        class11 = class1.groupby(['CLASS'
                                  ]).Entry.sum().reset_index().sort_values(
                                      by='Entry',
                                      ascending=False).reset_index(drop=True)
        class11 = class11.merge(class1[['CLASS',
                                        'class_col']].drop_duplicates(),
                                on='CLASS',
                                how='left')
        # distribución de Order
        phylum2 = new2.groupby(['PHYLUM', 'CLASS',
                                'ORDER']).Entry.count().reset_index()
        order0 = []
        order0_colors = []
        for i in phylum0.PHYLUM:
            for j in phylum2.PHYLUM:
                if i == j:
                    order0_colors.append(asign_color[j])
                    order0.append(phylum2[phylum2.PHYLUM == i].sort_values(
                        by='Entry', ascending=False).reset_index(drop=True))
                else:
                    pass
        order1 = pd.concat(order0).drop_duplicates()
        order1['order_col'] = order0_colors
        order0_colors_corregido = []
        for index, row in order1.iterrows():
            if row.PHYLUM == 'NA':
                if row.ORDER == 'NA':
                    order0_colors_corregido.append(row.order_col)
                else:
                    order0_colors_corregido.append('grey')
            else:
                if row.ORDER == 'NA':
                    order0_colors_corregido.append('black')
                else:
                    order0_colors_corregido.append(row.order_col)
        order1['order_col'] = order0_colors_corregido
        order11 = order1.groupby(['ORDER'
                                  ]).Entry.sum().reset_index().sort_values(
                                      by='Entry',
                                      ascending=False).reset_index(drop=True)
        order11 = order11.merge(order1[['ORDER',
                                        'order_col']].drop_duplicates(),
                                on='ORDER',
                                how='left')
        # distribución de Genus
        phylum3 = new2.groupby(['PHYLUM', 'CLASS', 'ORDER',
                                'GENUS']).Entry.count().reset_index()
        genus0 = []
        genus0_colors = []
        for i in phylum0.PHYLUM:
            for j in phylum3.PHYLUM:
                if i == j:
                    genus0_colors.append(asign_color[j])
                    genus0.append(phylum3[phylum3.PHYLUM == i].sort_values(
                        by='Entry', ascending=False).reset_index(drop=True))
                else:
                    pass
        genus1 = pd.concat(genus0).drop_duplicates()
        genus1['genus_col'] = genus0_colors
        genus0_colors_corregido = []
        for index, row in genus1.iterrows():
            if row.PHYLUM == 'NA':
                if row.GENUS == 'NA':
                    genus0_colors_corregido.append(row.genus_col)
                else:
                    genus0_colors_corregido.append('grey')
            else:
                if row.GENUS == 'NA':
                    genus0_colors_corregido.append('black')
                else:
                    genus0_colors_corregido.append(row.genus_col)
        genus1['genus_col'] = genus0_colors_corregido
        genus11 = genus1.groupby(['GENUS'
                                  ]).Entry.sum().reset_index().sort_values(
                                      by='Entry',
                                      ascending=False).reset_index(drop=True)
        genus11 = genus11.merge(genus1[['GENUS',
                                        'genus_col']].drop_duplicates(),
                                on='GENUS',
                                how='left')
        # distribución de Organism
        phylum4 = new2.groupby(
            ['PHYLUM', 'CLASS', 'ORDER', 'GENUS',
             'Organism']).Entry.count().reset_index()
        org0 = []
        org0_colors = []
        for i in phylum0.PHYLUM:
            for j in phylum4.PHYLUM:
                if i == j:
                    org0_colors.append(asign_color[j])
                    org0.append(phylum4[phylum4.PHYLUM == i].sort_values(
                        by='Entry', ascending=False).reset_index(drop=True))
                else:
                    pass
        org1 = pd.concat(org0).drop_duplicates()
        org1['org_col'] = org0_colors
        org0_colors_corregido = []
        for index, row in org1.iterrows():
            if row.PHYLUM == 'NA':
                if row.Organism == 'NA':
                    org0_colors_corregido.append(row.org_col)
                else:
                    org0_colors_corregido.append('grey')
            else:
                if row.Organism == 'NA':
                    org0_colors_corregido.append('black')
                else:
                    org0_colors_corregido.append(row.org_col)
        org1['org_col'] = org0_colors_corregido
        org11 = org1.groupby(['Organism'
                              ]).Entry.sum().reset_index().sort_values(
                                  by='Entry',
                                  ascending=False).reset_index(drop=True)
        org11 = org11.merge(org1[['Organism', 'org_col']].drop_duplicates(),
                            on='Organism',
                            how='left')
        os.makedirs('tax', exist_ok=True)
        return phylum0.to_csv('tax/phylum0.tsv', sep = '\t', index = None),\
            class1.to_csv('tax/class1.tsv', sep = '\t', index = None),\
            class11.to_csv('tax/class11.tsv', sep = '\t', index = None),\
            order1.to_csv('tax/order1.tsv', sep = '\t', index = None),\
            order11.to_csv('tax/order11.tsv', sep = '\t', index = None),\
            genus1.to_csv('tax/genus1.tsv', sep = '\t', index = None),\
            genus11.to_csv('tax/genus11.tsv', sep = '\t', index = None),\
            org1.to_csv('tax/org1.tsv', sep = '\t', index = None),\
            org11.to_csv('tax/org11.tsv', sep = '\t', index = None)

    alfas = {
        'Lineage*': [1, 1, 1, 1, 1],
        'Phylum': [1, 0.3, 0.3, 0.3, 0.3],
        'Class': [0.3, 1, 0.3, 0.3, 0.3],
        'Order': [0.3, 0.3, 1, 0.3, 0.3],
        'Genus': [0.3, 0.3, 0.3, 1, 0.3],
        'Species': [0.3, 0.3, 0.3, 0.3, 1],
        'Gradient1*': [1, 0.85, 0.7, 0.55, 0.4],
        'Gradient2*': [0.4, 0.55, 0.7, 0.85, 1],
        'Attenuate*': [0.3, 0.3, 0.3, 0.3, 0.3],
        'None*': [0, 0, 0, 0, 0]
    }

    def circle_lineage(alphas=alfas['Phylum']):
        #fig, ax = plt.subplots(111, facecolor= 'white')
        #fig, ax = plt.subplot(111)
        phylum0 = pd.read_csv('tax/phylum0.tsv', sep='\t').fillna('NA')
        class1 = pd.read_csv('tax/class1.tsv', sep='\t').fillna('NA')
        order1 = pd.read_csv('tax/order1.tsv', sep='\t').fillna('NA')
        genus1 = pd.read_csv('tax/genus1.tsv', sep='\t').fillna('NA')
        org1 = pd.read_csv('tax/org1.tsv', sep='\t').fillna('NA')

        radio = 0.5

        linaje = [phylum0, class1, order1, genus1, org1]
        #colores = [list(asign_color.values()), class0_colors, order0_colors, genus0_colors, org0_colors]
        colores = ['phy_col', 'class_col', 'order_col', 'genus_col', 'org_col']
        pat = []
        size = -.205
        for i, j, k in zip(linaje, colores, alphas):
            size += .205
            patches, texts = plt.pie(
                i.Entry,
                radius=radio + size,
                labels=None,
                labeldistance=0.8,
                rotatelabels=True,
                colors=
                i[j],  # new_colors(valor = len(i.Entry), col = 'nipy_spectral'),
                wedgeprops=dict(width=0.2, edgecolor='white', alpha=k),
                textprops=dict(size=10))
            pat.append(patches)

        #plt.legend(pat[0], df_phylum.PHYLUM, loc=2,fontsize=13,labelspacing = 0.4,
        #          bbox_to_anchor=(1.05, 1),frameon=False)

        plt.gca().set(aspect='equal')
        plt.title('Root', fontsize=10, x=0.5, y=0.465)
        plt.text(-1.8,
                 1.35,
                 'Lineage',
                 fontsize=15,
                 ha='left',
                 va='center',
                 color='black')
        #plt.title('Lineage',fontsize=20, fontweight='bold', x = -0.17, y = 1)
        #plt.text(1.1, 1.35, linaje_seleccionado, fontsize = 15, ha='left', va='center',
        #                    color='black')
        #>>>>>>>>>>>>>>>>>>>>>>>
        #### insetplot
        #ax2 = plt.axes([0.1, 0.66, 0.13, 0.14])
        ax2 = plt.axes([-0.07, 1.71, 0.17, 0.18])
        logo = [20, 20, 20, 20, 20, 20, 20, 20]
        logo_col = [
            'white', 'white', 'black', 'white', 'white', 'white', 'white',
            'white'
        ]
        logo_col1 = [
            'white', 'white', 'black', 'black', 'black', 'black', 'black',
            'black'
        ]
        radio = 0.5
        linaje = [logo, logo, logo, logo, logo]
        colores = [logo_col1, logo_col, logo_col, logo_col, logo_col]
        name_linaje = ['Phylum', 'Class', 'Order', 'Genus', 'Species']

        pat = []
        size = -.44
        pos = -.18
        for i, j, k, l in zip(linaje, colores, name_linaje, alphas):
            pos += .47
            size += .44
            ax2.pie(i,
                    radius=radio + size,
                    labels=None,
                    colors=j,
                    wedgeprops=dict(width=0.35, edgecolor='white', alpha=l),
                    textprops=dict(size=10))
            ax2.text(0.1,
                     pos,
                     k,
                     fontsize=9,
                     ha='left',
                     va='center',
                     fontweight='bold',
                     alpha=l)  #color='black'

    def barras_tax(df=DataFrame([]),
                   column=0,
                   dim=111,
                   title='',
                   row_num=10,
                   color=['#ff7f0e'],
                   size_x=8,
                   size_y=10,
                   ylabel_text='',
                   xlabel=10,
                   ylabel=10,
                   size_title=15,
                   size_bartxt=10,
                   sep=1.2):
        if len(df) == 0:
            print('Data frame sin datos')
        else:
            #plt.subplot(dim, facecolor= 'white')
            barWidth = 0.9
            if row_num == len(df):
                ejey = list(df.iloc[0:len(df), 1])
                val = max(ejey)
                ejex = list(df.iloc[0:len(df), column])
                colores = list(df.iloc[0:len(df), 2])
                borde = list(
                    np.repeat('white', len(df.iloc[0:row_num, column])))
                linea = list(np.repeat(0, len(df.iloc[0:row_num, column])))
            if row_num < len(df):
                ejey = list(df.iloc[0:row_num,
                                    1]) + [df.iloc[row_num:len(df), 1].sum()]
                val = max(ejey)
                ejex = list(df.iloc[0:row_num, column]) + ['Others']
                borde = list(
                    np.repeat('white', len(df.iloc[0:row_num,
                                                   column]))) + ['black']
                colores = list(df.iloc[0:row_num, 2]) + ['linen']
                linea = list(np.repeat(0, len(df.iloc[0:row_num,
                                                      column]))) + [1]
            if row_num > len(df):
                ejey = list(df.iloc[0:len(df), 1])
                val = max(ejey)
                ejex = list(df.iloc[0:len(df), column])
                borde = list(
                    np.repeat('white', len(df.iloc[0:row_num, column])))
                colores = list(df.iloc[0:len(df), 2])
                linea = list(np.repeat(0, len(df.iloc[0:row_num, column])))

            for i, j, k, l, m in zip(ejex, ejey, borde, colores, linea):
                plt.barh(i,
                         j,
                         color=l,
                         align='center',
                         height=0.7,
                         linewidth=m,
                         alpha=1,
                         edgecolor=k)
            plt.gca().spines['right'].set_visible(False)
            plt.gca().spines['top'].set_visible(False)
            plt.gca().spines['bottom'].set_position(('data', -0.6))
            plt.gca().spines['left'].set_visible(False)
            plt.title(title, size=size_title, loc='left')
            plt.tick_params(axis="y", color="gray")
            plt.yticks(size=size_y)

            v1 = -50
            v2 = 0
            v3 = 0
            for i in range(10000):
                v1 += 50
                v2 += 50
                v3 += 10
                if v1 <= max(list(ejey)) < v2:
                    #print(v3, v1, val, v2)
                    escala = v3

            plt.xticks(range(0, val, escala), size=size_x)  #fontweight='bold'
            plt.ylabel(ylabel_text, size=ylabel)
            plt.xlabel("Number of Proteins", size=xlabel)
            #plt.tick_params(top = 'on', bottom = 'on', right = 'on', left = 'on')
            #plt.tick_params(axis='x', which='both', bottom=False, top=False, labelbottom=False)

            for j, k in zip(ejey, range(0, len(ejey))):
                plt.text(j + sep,
                         k - 0.2,
                         j,
                         size=size_bartxt,
                         ha='left',
                         color='black')

    import ipywidgets as widgets
    from ipywidgets import interact, interactive, fixed, interact_manual, Button, HBox, VBox, IntSlider, Label, IntRangeSlider
    from ipywidgets import Checkbox, RadioButtons
    from ipywidgets import Button, Layout
    alfas = {
        'Lineage*': [1, 1, 1, 1, 1],
        'Phylum': [1, 0.3, 0.3, 0.3, 0.3],
        'Class': [0.3, 1, 0.3, 0.3, 0.3],
        'Order': [0.3, 0.3, 1, 0.3, 0.3],
        'Genus': [0.3, 0.3, 0.3, 1, 0.3],
        'Species': [0.3, 0.3, 0.3, 0.3, 1],
        'Gradient1*': [1, 0.85, 0.7, 0.55, 0.4],
        'Gradient2*': [0.4, 0.55, 0.7, 0.85, 1],
        'Attenuate*': [0.3, 0.3, 0.3, 0.3, 0.3],
        'None*': [0, 0, 0, 0, 0]
    }
    plotss = ['Phylum', 'Class', 'Order', 'Genus', 'Species']
    posicion_subplots = []
    n = 0.9
    while n < 2:
        n += 0.1
        posicion_subplots.append(np.around(n, 1))

    color_a6 = widgets.Dropdown(options=list(circle_colors.keys()),
                                value='Colors1',
                                description='Colors:',
                                disabled=False,
                                button_style='',
                                layout=Layout(width='20%', height='25px'))
    a6 = widgets.Dropdown(options=list(alfas.keys()),
                          description='Chart 1:',
                          value='Phylum',
                          disabled=False,
                          button_style='',
                          layout=Layout(width='20%', height='25px'))
    a61 = widgets.Dropdown(options=plotss,
                           description='Chart 2:',
                           disabled=False,
                           button_style='',
                           layout=Layout(width='20%', height='25px'))
    pos_sub1 = widgets.Dropdown(options=posicion_subplots,
                                value=1.3,
                                description='xloc1:',
                                disabled=False,
                                layout=Layout(width='15%', height='25px'))
    pos_sub2 = widgets.Dropdown(options=posicion_subplots,
                                value=1.3,
                                description='xloc2:',
                                disabled=False,
                                layout=Layout(width='15%', height='25px'))
    b6 = widgets.Dropdown(options=list(range(0, 101)),
                          value=10,
                          description='rows1:',
                          disabled=False,
                          layout=Layout(width='15%', height='25px'))
    c6 = widgets.Dropdown(options=list(range(0, 101)),
                          value=10,
                          description='rows2:',
                          disabled=False,
                          layout=Layout(width='15%', height='25px'))
    z6 = widgets.ToggleButton(value=False,
                              description='Save Chart',
                              disabled=False,
                              button_style='',
                              tooltip='Description')
    o6 = widgets.Dropdown(options=[0, 0.25, 0.5, 0.75] + list(range(0, 201)),
                          value=3,
                          description='sep1:',
                          disabled=False,
                          layout=Layout(width='15%', height='25px'))
    o61 = widgets.Dropdown(options=[0, 0.25, 0.5, 0.75] + list(range(0, 201)),
                           value=3,
                           description='sep2:',
                           disabled=False,
                           layout=Layout(width='15%', height='25px'))

    d6 = widgets.Dropdown(options=list(range(0, 51)),
                          value=8,
                          description='size_y1:',
                          disabled=False,
                          layout=Layout(width='15%', height='25px'))
    d61 = widgets.Dropdown(options=list(range(0, 51)),
                           value=8,
                           description='size_y2:',
                           disabled=False,
                           layout=Layout(width='15%', height='25px'))
    g6 = widgets.Dropdown(options=list(range(0, 51)),
                          value=8,
                          description='bartxt1:',
                          disabled=False,
                          layout=Layout(width='15%', height='25px'))
    g61 = widgets.Dropdown(options=list(range(0, 51)),
                           value=8,
                           description='bartxt2:',
                           disabled=False,
                           layout=Layout(width='15%', height='25px'))

    xxx = Button(layout=Layout(width='5%', height='25px'), disabled=True)
    xxx.style.button_color = 'white'
    yyy = Button(layout=Layout(width='94%', height='5px'), disabled=True)
    yyy.style.button_color = 'red'

    ww = widgets.HBox([color_a6, xxx, z6])
    w6 = widgets.HBox([
        a6,
        b6,
        o6,
        d6,
        g6,
        pos_sub1,
    ])
    w7 = widgets.HBox([
        a61,
        c6,
        o61,
        d61,
        g61,
        pos_sub2,
    ])
    w8 = widgets.VBox([w6, w7, yyy])

    ######

    def col(color_a6):
        tax_colors(color_list=circle_colors[color_a6], taxx=dfUniprot)

    out7 = widgets.interactive_output(col, {'color_a6': color_a6})

    def box1(a6, a61, pos_sub1, pos_sub2, b6, c6, z6, o6, o61, d6, d61, g6,
             g61):
        yetiquetas_plot1 = {
            'Lineage*': 'Phylum',
            'Phylum': 'Phylum',
            'Class': 'Class',
            'Order': 'Order',
            'Genus': 'Genus',
            'Species': 'Species',
            'Gradient1*': 'Phylum',
            'Gradient2*': 'Phylum',
            'Attenuate*': 'Phylum',
            'None*': 'Phylum'
        }
        plots1 = {
            'Lineage*': pd.read_csv('tax/phylum0.tsv', sep='\t').fillna('NA'),
            'Phylum': pd.read_csv('tax/phylum0.tsv', sep='\t').fillna('NA'),
            'Class': pd.read_csv('tax/class11.tsv', sep='\t').fillna('NA'),
            'Order': pd.read_csv('tax/order11.tsv', sep='\t').fillna('NA'),
            'Genus': pd.read_csv('tax/genus11.tsv', sep='\t').fillna('NA'),
            'Species': pd.read_csv('tax/org11.tsv', sep='\t').fillna('NA'),
            'Gradient1*': pd.read_csv('tax/phylum0.tsv',
                                      sep='\t').fillna('NA'),
            'Gradient2*': pd.read_csv('tax/phylum0.tsv',
                                      sep='\t').fillna('NA'),
            'Attenuate*': pd.read_csv('tax/phylum0.tsv',
                                      sep='\t').fillna('NA'),
            'None*': pd.read_csv('tax/phylum0.tsv', sep='\t').fillna('NA')
        }
        plots2 = {
            'Phylum': pd.read_csv('tax/phylum0.tsv', sep='\t').fillna('NA'),
            'Class': pd.read_csv('tax/class11.tsv', sep='\t').fillna('NA'),
            'Order': pd.read_csv('tax/order11.tsv', sep='\t').fillna('NA'),
            'Genus': pd.read_csv('tax/genus11.tsv', sep='\t').fillna('NA'),
            'Species': pd.read_csv('tax/org11.tsv', sep='\t').fillna('NA')
        }
        ax3 = plt.axes([pos_sub2, .97, .3, 0.55])
        ##>>>>>>>>>>> grafico circular
        ax = plt.axes([0, 1, 0.9, 1])
        circle_lineage(alphas=alfas[a6])
        ##>>>>>>>>>>> grafico 1
        #ax2 = plt.axes([pos_sub1, 1.51, .3, 0.55])
        ax2 = plt.axes([pos_sub1, 1.63, .3, 0.4])  #>>>>>>>>>>

        barras_tax(
            plots1[a6],
            #barras_tax(tax_colors(color_list = circle_colors['Spectral'])[0],
            row_num=b6,
            color=plots1[a6].iloc[0:b6, 2],
            sep=o6,
            size_y=d6,
            size_bartxt=g6,
            ylabel_text=yetiquetas_plot1[a6],
            ylabel=10)

        ##>>>>>>>>>>> grafico 2
        ax3 = plt.axes([pos_sub2, .97, .3, 0.55])

        barras_tax(
            plots2[a61],
            #barras_tax(tax_colors(color_list = circle_colors['Spectral'])[0],
            row_num=c6,
            color=plots2[a61].iloc[0:b6, 2],
            sep=o61,
            size_y=d61,
            size_bartxt=g61,
            ylabel_text=yetiquetas_plot1[a61],
            ylabel=10)

        ##>>>>>>>>>>>> save
        if z6 == True:
            import datetime
            plt.savefig('img/Lineage' +
                        datetime.datetime.now().strftime('%d.%B.%Y_%I-%M%p') +
                        '.png',
                        dpi=900,
                        bbox_inches='tight')
        else:
            pass

    out6 = widgets.interactive_output(
        box1, {
            'a6': a6,
            'a61': a61,
            'pos_sub1': pos_sub1,
            'pos_sub2': pos_sub2,
            'b6': b6,
            'c6': c6,
            'z6': z6,
            'o6': o6,
            'o61': o61,
            'd6': d6,
            'd61': d61,
            'g6': g6,
            'g61': g61
        })
    import warnings
    warnings.filterwarnings("ignore")
    return display(VBox([yyy, ww, w8, out6]))
Esempio n. 10
0
        y = df['Fail Rate'].as_matrix()

        result = sm.OLS(y, X).fit()
        R2 = '{0:.3f}'.format(result.rsquared)
        R2_value_list.extend([float(R2)])
        R2_neighb_list.extend([neighborhood])
        num_values_list.extend([df.shape[0]])

x = np.arange(len(neighborhood_lst)) + 1  #X values

#Plot violation level
viol_lvl_boxplot = plt.boxplot(viol_level_list, vert=0, patch_artist=True)

count = 0
for box in viol_lvl_boxplot['boxes']:
    box.set(facecolor=cm.Pastel1(1. * count / len(x)))
    count += 1

plt.setp(viol_lvl_boxplot['fliers'], color='red', marker='+')
plt.yticks(x, neighborhood_lst, fontsize=9)
plt.title('Violation Level Data by Neighborhood')
plt.xlabel('Violation Level')
plt.show()

#Plot Yelp rating
yelp_rating_boxplot = plt.boxplot(yelp_rating_list, vert=0, patch_artist=True)

count = 0
for box in yelp_rating_boxplot['boxes']:
    box.set(facecolor=cm.Pastel1(1. * count / len(x)))
    count += 1
Esempio n. 11
0
    # Create a full transformation graph annotated
    # ----------------------------------------------
    g = Digraph('G', filename='calibration_full')
    number_of_sensors = 0
    sensors = []

    for joint in xml_robot.joints:
        if 'caster' in joint.name:
            continue
        g.node(joint.parent, _attributes={'shape': 'ellipse'})
        g.node(joint.child, _attributes={'shape': 'ellipse'})
        g.edge(joint.parent, joint.child, color='black', style='dashed')

    print('Number of sensors: ' + str(len(xml_robot.sensors)))
    # cmap = cm.Set3(np.linspace(0, 1, len(xml_robot.sensors)))
    cmap = cm.Pastel1(np.linspace(0, 1, len(xml_robot.sensors) * 2))
    # cmap = cm.tab10(np.linspace(0, 1, len(xml_robot.sensors)))
    # cmap = cm.viridis(np.linspace(0, 1, len(xml_robot.sensors)))
    # cmap = cm.brg(np.linspace(0, 1, len(xml_robot.sensors)))

    # parsing of robot description
    # for i, xml_sensor in enumerate(xml_robot.sensors):
    #
    #     print(Fore.BLUE + '\n\nSensor name is ' + xml_sensor.name + Style.RESET_ALL)
    #
    #     # Check if we have all the information needed. Abort if not.
    #     if xml_sensor.parent is None:
    #         raise ValueError('Element parent for sensor ' + xml_sensor.name + ' must be specified in the urdf/xacro.')
    #     else:
    #         print('parent link is ' + str(xml_sensor.parent))
    #
Esempio n. 12
0
    # Show the centroids
    fig, ax = plt.subplots(1, 10, figsize=(10, 10))

    for i in range(10):
        c = km.cluster_centers_[i]
        ax[i].matshow(c.reshape(8, 8) * 255.0, cmap='gray')
        ax[i].set_xticks([])
        ax[i].set_yticks([])

    plt.show()

    # Perform t-SNE on the clustered dataset
    tsne = TSNE(n_components=2, perplexity=20.0, random_state=1000)
    X_tsne = tsne.fit_transform(X_train)

    fig, ax = plt.subplots(figsize=(18, 10))

    # Show the t-SNE clustered dataset
    for i in range(X_tsne.shape[0]):
        ax.scatter(X_tsne[i, 0], X_tsne[i, 1], marker='o', color=cm.Pastel1(Y[i]), s=150)
        ax.annotate('%d' % Y[i], xy=(X_tsne[i, 0] - 0.5, X_tsne[i, 1] - 0.5))

    ax.set_xlabel(r'$x_0$')
    ax.set_ylabel(r'$x_1$')
    ax.grid()

    plt.show()



Esempio n. 13
0
#!/usr/bin/env python
# coding: utf-8

# In[2]:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

fig, (ax1, ax2, ax3, ax4, ax5, ax6, ax7) = plt.subplots(nrows=7, sharex=True)

x = np.linspace(0, 2 * np.pi, 100)
for i in range(30):
    y = i * np.sin(x)
    ax1.plot(x, y, color=cm.rainbow(i / 30.0))
    ax2.plot(x, y, color=cm.Reds(i / 30.0))
    ax3.plot(x, y, color=cm.binary(i / 30.0))
    ax4.plot(x, y, color=cm.PiYG(i / 30.0))
    ax5.plot(x, y, color=cm.twilight(i / 30.0))
    ax6.plot(x, y, color=cm.Pastel1(i / 30.0))
    ax7.plot(x, y, color=cm.flag(i / 30.0))

ax1.set_xlim(0, 2 * np.pi)
fig.show()

# In[ ]:
Esempio n. 14
0
						#if t > 1000:
							#obses_t, actions, rewards, obses_tp1, dones = replay_buffer.sample(32) #change to dynamic
							#train(obses_t, actions, rewards, obses_tp1, dones, np.ones_like(rewards))
						# Update target network periodically.
						if t % target_update == 0:
							update_target()

					#if done and len(episode_rewards) % 10 == 0:
						#logger.record_tabular("steps", t)
						#logger.record_tabular("episodes", len(episode_rewards))
						#logger.record_tabular("mean episode reward", round(np.mean(episode_rewards[-101:-1]), 1))
						#logger.record_tabular("% time spent exploring", int(100 * exploration.value(t)))
						#logger.dump_tabular()
		
		
		
		labels = ['Update target network after {} iterations'.format(target_update) for target_update in target_updates]
		colors = cm.Pastel1(list(range(len(target_updates))))
		for i,accReward in enumerate(accRewards):
			plt.plot(x_s,y_s[i,:],label = labels[i],color=colors[i])
		plt.grid()
		plt.title("Cumulative Rewards for different epsilons")
		plt.ylabel("Cumulative Discounted Rewards")
		plt.xlabel("Episode")
		plt.legend(loc = 'lower right')
		plt.savefig("plot1.png")
		plt.close()
		file = drive.CreateFile({'parents': [{"kind": "drive#childList",'id': '1zO5uSQKYGAUT4ZKi5rXmorP-vwQ9uG5d'}]})
        file.SetContentFile('plot1.png')
        file.Upload()