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])
# ------------------------ # 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'
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
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],
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)
def fill_square(x, y, s): plt.fill([x, x, x + s, x + s], [y, y + s, y + s, y], color=colormap.Pastel1(rand()))
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()
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()
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]))
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
# 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)) #
# 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()
#!/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[ ]:
#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()