Beispiel #1
0
def _draw_popsstat_component(data, name, title, ylabel, default_value=-1):
     ## TODO: remake it with acquaring figure and subplot from the function arguments
    colors = ['r', 'g', 'b']

    plt.grid(True)
    ax = plt.gca()
    ax.set_xlim(0, len(points))
    ax.set_xscale('linear')
    plt.xticks(range(0, len(points)))
    ax.set_xticklabels(points)
    ax.set_title(title)
    ax.set_ylabel(ylabel)
    plt.setp(plt.xticks()[1], rotation=30, ha='right')

    species = sorted(data["metainfo"]["species"])
    pcolors = {s: c for s, c in zip(species, colors)}

    gens = sorted(data["iterations"], key=lambda x: x["gen"])
    values = {s: [(points.index(gen["gen"]), gen["popsstat"][0][s].get(name, default_value))
                  for gen in gens if gen["gen"] in points]
              for s in species}

    plotted = []
    labels = []
    for s, vals in values.items():
        plt.plot([x[0] for x in vals], [x[1] for x in vals], "-{0}x".format(pcolors[s]))
        plotted.append(Rectangle((0, 0), 1, 1, fc=pcolors[s]))
        labels.append(s)

    plt.legend(plotted, labels)
    pass
Beispiel #2
0
def add_plot(mom, cfg):
    ax = mom['ax']
    levels = mom['levels']
    if cfg['contour']:
        im = ax.contourf(mom['data'], levels=levels,
                         colors=cfg['colors'], origin='lower', axis='equal',
                         extent=[cfg['dt_start'], cfg['dt_stop'],
                                 -0.11, cfg['beam_height'][-1]])
    else:
        cmap = ListedColormap(cfg['colors'])  # , name='')
        norm = BoundaryNorm(levels, ncolors=cmap.N, clip=True)
        im = ax.pcolormesh(cfg['X'], cfg['Y'], mom['data'], cmap=cmap, norm=norm)

    ax.set_ylim(0, 13)
    ax.xaxis_date()
    ax.xaxis.set_major_formatter(mdates.DateFormatter('\n%H:%M'))
    ax.xaxis.set_major_locator(mdates.HourLocator())
    ax.xaxis.set_minor_formatter(mdates.DateFormatter('%M'))
    ax.xaxis.set_minor_locator(
        mdates.MinuteLocator(byminute=(15, 30, 45, 60)))
    ax.grid()
    ax.set_ylabel('Height (km)')
    ax.set_xlabel('Time (UTC)')

    cb = mom['fig'].colorbar(im, orientation='vertical', pad=0.018, aspect=35)
    cb.outline.set_visible(False)
    cbarytks = plt.getp(cb.ax.axes, 'yticklines')
    plt.setp(cbarytks, visible=False)
    cb.set_ticks(levels[0:-1])
    cb.set_ticklabels(["%.2f" % lev for lev in levels[0:-1]])
    cb.set_label(mom['cb_label'])
Beispiel #3
0
def rootmov( numframes, degree, bins, dpi):
        #Main loop for making frame images
        for frame in range(1,numframes + 1):
               realy = list()
               imagy = list()
               percent = 1.0 * frame / numframes
               # Find the roots of all polynomials of given degree as coefficients vary.
	       for group in product(pathcoeff(percent),repeat=degree):
                        rootie = np.roots(group)
                        for rooter in list(rootie):
                                if rooter.imag != 0:
                                        realy.append(rooter.real)
                                        imagy.append(- rooter.imag)
               # Make histogram of roots.
               H, xedges, yedges = np.histogram2d(realy,imagy, bins=bins)
               H = np.log1p( 1 / (1 + H ) )
               # Configure and save an image of the histogram.
               fig=plt.figure( facecolor='k', edgecolor='k')
               ax=plt.gca()
               plt.setp(ax, frame_on=True)
               plt.setp(ax.get_xticklabels(), visible=False)
               plt.setp(ax.get_yticklabels(), visible=False)
               plt.setp(ax.get_xticklines(), visible=False)
               plt.setp(ax.get_yticklines(), visible=False)
               plt.imshow(H,interpolation='bicubic',extent=[0,1000,0,600], cmap=dynacm( percent ) )
               plt.savefig("root_test{:04}.png".format(frame),dpi=dpi, facecolor='k', edgecolor='k', bbox_inches='tight')
               ax.clear()
               plt.close(fig)
Beispiel #4
0
def graph(excel, dflist):
    fig, axes = plt.subplots(nrows=4, ncols=3, figsize=(16, 9), sharex=False, sharey=False)
    #fig.subplots_adjust(wspace=0, hspace=0)
    fig.subplots_adjust(hspace=0.5, left=0.5, right=0.9, bottom=0.01, top=0.95)
    fig.autofmt_xdate()
    plt.setp(axes, xticklabels=[], yticks=[])

    for i, j in enumerate(dflist):
        df = pd.read_excel('C:/Users/TokuharM/Desktop/Python_Scripts/%s' %excel, sheetname ='%s' % j, na_values=['NA'],parse_dates=['date'])
        df.sort_index(by = ["date"])

        x = df[["date"]]
        y = df[["errors"]]

        ax = fig.add_subplot(4,3,i+1)
        #ax = fig.add_subplot(i/3+1,i%3+1,1)
        ax.plot(x, y, "-o") #axに対してラベル幅などの調整を行う

        if len(x) > 0:
            days = mdates.DayLocator()
            daysFmt = mdates.DateFormatter('%m-%d')
            ax.xaxis.set_major_locator(days)
            ax.xaxis.set_major_formatter(daysFmt)
            ax.xaxis.set_ticks(pd.date_range(x.iloc[1,0], x.iloc[-1,0], freq='7d'))
            #ax.set_xlabel('Date')
            ax.set_ylabel('Errors')
            #ax.set_xticklabels('off')
            #ax.set_yticklabels('off')
            ax.grid()
            plt.xticks(rotation=30, fontsize='8')
            plt.yticks(range(0,400,30), fontsize='8')
            plt.axis('tight')
            ax.set_title(j, fontsize='10')
    plt.tight_layout(pad=1.0, w_pad=1.0, h_pad=1.0)
    plt.show()
	def barPlot(self, datalist, threshold, figname):

		tally = self.geneCount(datalist)

		#Limit the items plotted to those over 1% of the read mass
		geneplot = defaultdict()
		for g, n in tally.iteritems():
			if n > int(sum(tally.values())*threshold):
				geneplot[g] = n

		#Get plotting values
		olist = OrderedDict(sorted(geneplot.items(),key=lambda t: t[0]))
		summe = sum(olist.values())
		freq = [float(x)/float(summe) for x in olist.values()]
		
		#Create plot
		fig = plt.figure()
		width = .35
		ind = np.arange(len(geneplot.keys()))
		plt.bar(ind, freq)
		plt.xticks(ind + width, geneplot.keys())
		locs, labels = plt.xticks() 
		plt.setp(labels, rotation=90)
		plt.show()

		fig.savefig(figname)
		print("Saved bar plot as: "+figname)
def Bplot(data,label,ylabel,trueVal):
    fig = plt.figure(dpi=600)
    ax = plt.subplot(111)
    bp = plt.boxplot(data, notch=0, sym='o', vert=1, whis=1.5,patch_artist=True)
    plt.setp(bp['boxes'], color='black',linewidth=1.5,facecolor='darkkhaki')
    plt.setp(bp['whiskers'], color='black',linewidth=1.5)
    plt.setp(bp['caps'], color='black',linewidth=1.5)
    plt.setp(bp['medians'], color='darkgreen',linewidth=1.5)
    plt.setp(bp['fliers'], color='grey', marker='o')
    ax.axhline(y=trueVal,xmin=0,xmax=1,c="r",linewidth=2.0,zorder=0,linestyle='--')

    ax.yaxis.grid(True, linestyle='-', which='major', color='lightgrey',alpha=0.8)
    ax.set_axisbelow(True)
    ax.set_ylabel(ylabel,fontsize = 24)
#     ax.set_xlabel(r'Variability',fontsize = 24)
    for tick in ax.yaxis.get_major_ticks():
        tick.label.set_fontsize(18)
    ax.set_xticklabels(label,fontsize=18)
    ax.get_xaxis().tick_bottom()
    ax.get_yaxis().tick_left()
       
    for i in range(len(data)):
        med = bp['medians'][i]
        plt.plot([np.average(med.get_xdata())], [np.average(data[i])],color='r', marker='*', markeredgecolor='k',markersize=10,label="Mean")
    
    fig.tight_layout()
    savingTitle = ylabel.translate(None,'${}')
    fig.savefig(''.join(['Plots/',funcFolder,'/Boxplots/%s.eps'])%(savingTitle),format='eps')
Beispiel #7
0
def _analyze_class_distribution(csv_filepath,
                                max_data=1000,
                                bin_size=25):
    """Plot the distribution of training data over graphs."""
    symbol_id2index = generate_index(csv_filepath)
    index2symbol_id = {}
    for index, symbol_id in symbol_id2index.items():
        index2symbol_id[symbol_id] = index
    data, y = load_images(csv_filepath, symbol_id2index, one_hot=False)

    data = {}
    for el in y:
        if el in data:
            data[el] += 1
        else:
            data[el] = 1
    classes = data
    images = len(y)

    # Create plot
    print("Classes: %i" % len(classes))
    print("Images: %i" % images)

    class_counts = sorted([count for _, count in classes.items()])
    print("\tmin: %i" % min(class_counts))

    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    # plt.title('HASY training data distribution')
    plt.xlabel('Amount of available testing images')
    plt.ylabel('Number of classes')

    # Where we want the ticks, in pixel locations
    ticks = [int(el) for el in list(np.linspace(0, 200, 21))]
    # What those pixel locations correspond to in data coordinates.
    # Also set the float format here
    ax1.set_xticks(ticks)
    labels = ax1.get_xticklabels()
    plt.setp(labels, rotation=30)

    min_examples = 0
    ax1.hist(class_counts, bins=range(min_examples, max_data + 1, bin_size))
    # plt.show()
    filename = '{}.pdf'.format('data-dist')
    plt.savefig(filename)
    logging.info("Plot has been saved as {}".format(filename))

    symbolid2latex = _get_symbolid2latex()

    top10 = sorted(classes.items(), key=lambda n: n[1], reverse=True)[:10]
    top10_data = 0
    for index, count in top10:
        print("\t%s:\t%i" % (symbolid2latex[index2symbol_id[index]], count))
        top10_data += count
    total_data = sum([count for index, count in classes.items()])
    print("Top-10 has %i training data (%0.2f%% of total)" %
          (top10_data, float(top10_data) * 100.0 / total_data))
    print("%i classes have more than %i data items." %
          (sum([1 for _, count in classes.items() if count > max_data]),
           max_data))
Beispiel #8
0
  def get_axis( ax, limit ):
    xmin, xmax = limit
    ax.set_xlim( [ xmin, xmax ] )

    ax.grid(True)
    #ax.set_ylim( [ ts.value.min( ) *.85 , 600 ] )
    #ax.set_xlabel('time')

    majorLocator   = dates.DayLocator( )
    majorFormatter = dates.AutoDateFormatter( majorLocator )

    minorLocator   = dates.HourLocator( interval=6 )
    minorFormatter = dates.AutoDateFormatter( minorLocator )

    #ax.xaxis.set_major_locator(majorLocator)
    #ax.xaxis.set_major_formatter(majorFormatter)

    ax.xaxis.set_minor_locator(minorLocator)
    ax.xaxis.set_minor_formatter(minorFormatter)

    labels = ax.get_xminorticklabels()
    plt.setp(labels, rotation=30, fontsize='small')
    plt.setp(ax.get_xmajorticklabels(), rotation=30, fontsize='medium')

    xmin, xmax = ax.get_xlim( )
    
    log.info( pformat( {
      'xlim': [ dates.num2date( xmin ), dates.num2date( xmax ) ],
      'xticks': dates.num2date( ax.get_xticks( ) ),
    } ) )
Beispiel #9
0
def plot_glucose_stems( ax, ts ):
  # visualize glucose using stems
  markers, stems, baselines = ax.stem( ts.time, ts.value,
           linefmt='b:' )
  plt.setp( markers, color='red', linewidth=.5,
            marker='o' )
  plt.setp( baselines, marker='None' ) 
Beispiel #10
0
    def plot_matrix(self, colorbar_kws, xind, yind, **kws):
        self.data2d = self.data2d.iloc[yind, xind]
        self.mask = self.mask.iloc[yind, xind]

        # Try to reorganize specified tick labels, if provided
        xtl = kws.pop("xticklabels", "auto")
        try:
            xtl = np.asarray(xtl)[xind]
        except (TypeError, IndexError):
            pass
        ytl = kws.pop("yticklabels", "auto")
        try:
            ytl = np.asarray(ytl)[yind]
        except (TypeError, IndexError):
            pass

        heatmap(self.data2d, ax=self.ax_heatmap, cbar_ax=self.cax,
                cbar_kws=colorbar_kws, mask=self.mask,
                xticklabels=xtl, yticklabels=ytl, **kws)

        ytl = self.ax_heatmap.get_yticklabels()
        ytl_rot = None if not ytl else ytl[0].get_rotation()
        self.ax_heatmap.yaxis.set_ticks_position('right')
        self.ax_heatmap.yaxis.set_label_position('right')
        if ytl_rot is not None:
            ytl = self.ax_heatmap.get_yticklabels()
            plt.setp(ytl, rotation=ytl_rot)
Beispiel #11
0
    def legend(self, ax, handles, labels, **kwargs):
        '''Make a legend, following guidelines in USGS Illustration Standards, p. 14

        ax : matplotlib.pyplot axis object
        handles : list
            matplotlib.pyplot handles for each plot
        labels : list
            labels for each plot
        kwargs : dict
            keyword arguments to matplotlib.pyplot.legend()
        '''

        lgkwargs = {'title': 'EXPLANATION',
                    'fontsize': self.legend_headingsize,
                    'frameon': False,
                    'loc': 8,
                    'bbox_to_anchor': (0.5, -0.25)}
        lgkwargs.update(kwargs)

        mpl.rcParams['font.family'] = self.title_font


        lg = ax.legend(handles, labels, **lgkwargs)

        plt.setp(lg.get_title(), fontsize=self.legend_titlesize)
        #reset rcParams back to default
        mpl.rcParams['font.family'] = self.default_font
        return lg
Beispiel #12
0
def PlotErrBoxPlot(x, y, delta, ax, showXTicks):
  if x.size < 1:
    return
  ids = np.floor((x)/delta).astype(np.int)
  data = []
  for i in range(ids.min(), ids.max()+1):
    if (ids==i).any():
      data.append(y[ids==i])
  bp = plt.boxplot(data)
#  plt.plot(x,y,'.', color=c1, alpha=0.3)
  # set xticks
  if showXTicks:
    ticks = np.floor((np.arange(ids.min(), ids.max()+1)+0.5)*delta).astype(np.int)
    if np.unique(ticks).size < ticks.size:
      ticks = np.floor((np.arange(ids.min(), ids.max()+1)+0.5)*delta*10.)/10.
    xtickNames = plt.setp(ax, xticklabels=ticks)
    plt.setp(xtickNames, rotation=45)
  else:
    plt.setp(ax.get_xticklabels(), visible=False) 
  for box in bp["boxes"]:
    box.set(color=c1)
    #box.set(facecolor=c1)
  for whisker in bp["whiskers"]:
    whisker.set(color=c1)
  for cap in bp["caps"]:
    cap.set(color=c1)
  for median in bp["medians"]:
    median.set(color=c2)
  for flier in bp["fliers"]:
    flier.set(color=c3, marker=".", alpha=0.15) #,s=6)
Beispiel #13
0
def PlotScatter(x, y, delta, ax, showXTicks):
  if x.size < 1:
    return
  plt.plot(x,y,'.', color=c1, alpha=0.3)
  # set xticks
  if not showXTicks:
    plt.setp(ax.get_xticklabels(), visible=False) 
def plot(lookup):
        data = []
        for iiDiameter in sorted(lookup.keys()):
                data.append(lookup[iiDiameter])
        plt.boxplot(data, sym='')
        plt.setp(plt.gca(),'xticklabels',sorted(lookup.keys()))
        plt.show()
def demo_locatable_axes_hard(fig1):

    from mpl_toolkits.axes_grid1 import SubplotDivider, LocatableAxes, Size

    divider = SubplotDivider(fig1, 2, 2, 2, aspect=True)

    # axes for image
    ax = LocatableAxes(fig1, divider.get_position())

    # axes for colorbar
    ax_cb = LocatableAxes(fig1, divider.get_position())

    h = [Size.AxesX(ax), Size.Fixed(0.05), Size.Fixed(0.2)]  # main axes  # padding, 0.1 inch  # colorbar, 0.3 inch

    v = [Size.AxesY(ax)]

    divider.set_horizontal(h)
    divider.set_vertical(v)

    ax.set_axes_locator(divider.new_locator(nx=0, ny=0))
    ax_cb.set_axes_locator(divider.new_locator(nx=2, ny=0))

    fig1.add_axes(ax)
    fig1.add_axes(ax_cb)

    ax_cb.axis["left"].toggle(all=False)
    ax_cb.axis["right"].toggle(ticks=True)

    Z, extent = get_demo_image()

    im = ax.imshow(Z, extent=extent, interpolation="nearest")
    plt.colorbar(im, cax=ax_cb)
    plt.setp(ax_cb.get_yticklabels(), visible=False)
def candlestickGraph(start, end, stock):
    mondays = WeekdayLocator(MONDAY)
    alldays = DayLocator()
    weekFormatter = DateFormatter('%b %y')  # e.g., Jan 12016
    dayFormatter = DateFormatter('%d')

    quotes = quotes_historical_yahoo_ohlc(stock, start, end)

    if len(quotes) == 0:
        raise SystemExit
    fig, ax = plt.subplots()
    fig.subplots_adjust(bottom=0.1)
    ax.xaxis.set_major_locator(mondays)
    ax.xaxis.set_minor_locator(alldays)
    ax.xaxis.set_major_formatter(weekFormatter)
    #ax.xaxis.set_minor_formatter(dayFormatter)

    #plot_day_summary(ax, quotes, ticksize=3)
    candlestick_ohlc(ax, quotes, width=.6, colorup='#77d879', colordown='#db3f3f', alpha=0.65)

    ax.xaxis.set_major_locator(mticker.MaxNLocator(10))


    for label in ax.xaxis.get_ticklabels():
            label.set_rotation(45)

    ax.xaxis_date()

    plt.setp(plt.gca().get_xticklabels(), rotation=45)

    plt.show()
Beispiel #17
0
def trendPicture(rt,comment):
     
    colorList = ['b','g','r','c','m','y','k']
 
    threadList = []
    for i in range(len(rt)):
	threadList.append(i)
   
    dataList1 = [int(x) for x in rt]
    dataList2 = [int(x) for x in comment]
   
    string = str(len(dataList1)) + u'条微博趋势图'
    plt.title(string)

    
    lines = []

    titles = []

   
    line1 = plt.plot(threadList, dataList1)
    plt.setp(line1, color=colorList[0], linewidth=2.0)
    titles.append(u'转发')
    lines.append(line1)

   
    line2 = plt.plot(threadList, dataList2)
    plt.setp(line2, color=colorList[1], linewidth=2.0)
    titles.append(u'评论')
    lines.append(line2)

    plt.legend(lines, titles)
    plt.show()
Beispiel #18
0
def plot_bold_signal(timeseries, x, y):
	# plots timeseries of two given nodes in a specific time interval
	
	v1  = timeseries[:, x]
	v2  = timeseries[:, y]
	
	T   = len(v1)	
	time = np.linspace(0, T-1, T) / float(60000)
	
	[R_pearson , p_value] = sistat.pearsonr(v1 , v2)
	
	## if the given signal downsampled :
	#time_bds = np.arange(0,  530,  float(530)/len(v1) )/float(60)
	#pl.plot(time_bds, v1, 'r',label=('node '+str(x)))
	#pl.plot(time_bds, v2, 'b',label=('node '+str(y)))
	
	# if no downsampling :

	fig , ax = pl.subplots(figsize=(25, 5.5))
	pl.subplots_adjust(left=0.08, right=0.98, top=0.94, bottom=0.20)

	pl.plot(time, v1, 'm', label=('$u_{' + str(x+1) + '}(t)$'))
	pl.plot(time, v2, 'g', label=('$u_{' + str(y+1) + '}(t)$'))
	pl.setp(pl.gca().get_xticklabels(), fontsize = 30)
	pl.setp(pl.gca().get_yticklabels(), fontsize = 30)
	
	#ax.set_ylim(-v2.max()-0.05, v2.max()+0.05)
	ax.set_ylim(-0.6, 0.6)
	
	pl.legend(prop={'size':35})

	pl.xlabel('t [min]', fontsize=30)
	pl.ylabel('BOLD % change' ,fontsize=40)
	
	return	
def set_axis_properties(p,metric,varying_parameter,group):

    #Set major x-axis label
    plt.xlabel(xlabel_names[varying_parameter])

    #Set x-axis scale
    xscale_args = xscale_arguments[(metric,varying_parameter)]
    plt.xscale(xscale_args[0],**xscale_args[1])

    #Set x-axis tick labels
    #Get tick values
    ticks = list(sp.unique(group[varying_parameter]))

    #If an item is not in the tick dictionary for the bar plot, add it
    if pltkind[(metric,varying_parameter)] is 'bar':
        for item in ticks:
            if item not in varying_xlabels[varying_parameter].keys():
                varying_xlabels[varying_parameter][item] = '$' + str(item) +'$'

    xlabels = [ varying_xlabels[varying_parameter][item] for item in ticks]

    if pltkind[(metric,varying_parameter)] is 'bar':
        p.set_xticks(sp.arange(len(ticks))+0.5)
        plt.setp(p.set_xticklabels(xlabels), rotation=0)
    else:
        plt.xticks(ticks,xlabels)

    plt.ylabel(ylabel_names[metric])
    plt.grid('on')
Beispiel #20
0
def plot_subplots(offsets, tag, n, window):
  fig, axarr = plt.subplots(4, sharex=True, **dict(figsize=(12,12)))
  sel1 = np.logical_and(offsets['mchirp'] > 0.0, offsets['mchirp'] <= 5.0)
  sel2 = np.logical_and(offsets['mchirp'] > 5.0, offsets['mchirp'] <= 10.0)
  sel3 = np.logical_and(offsets['mchirp'] > 10.0, offsets['mchirp'] <= 15.0)
  sel4 = np.logical_and(offsets['mchirp'] > 15.0, offsets['mchirp'] <= 100.0)
  
  sel = [sel1, sel2, sel3, sel4]
  labels = [r'$\mathcal{M}\ \leq\ 5M_{\odot}$', r'$5M_{\odot}\ <\ \mathcal{M}\ \leq\ 10M_{\odot}$'\
      ,r'$10M_{\odot}\ <\ \mathcal{M}\ \leq\ 15M_{\odot}$', r'$\mathcal{M}\ >\ 15M_{\odot}$']
  
  hist_min = np.min(offsets['offset'][sel[0]])
  hist_max = np.max(offsets['offset'][sel[0]])
  
  for i in xrange(len(axarr)):
    if not np.any(sel[i]):
      continue
    axarr[i].hist(offsets['offset'][sel[i]], histtype='step', bins=n,\
        range=[hist_min, hist_max], label=labels[i])
    axarr[i].set_yscale('log', nonposy='clip')
    axarr[i].set_xlim(-window/2, window/2)
    axarr[i].set_ylabel(r'N')
    axarr[i].grid(True)
    axarr[i].legend(loc="upper left", bbox_to_anchor=(1,1))

  axarr[3].set_xlabel(r'Offset  [Sec]')
  fig.subplots_adjust(hspace=0.5)
  plt.setp([a.get_xticklabels() for a in fig.axes[:-1]], visible=False)

  axarr[0].set_title( tag)
  plt.savefig(tag + '_subplotshistogram.png', bbox_inches='tight')
  #, bbox_extra_artists=(lgd,), bbox_inches='tight')
  plt.close()
def doplot():
    fig = plt.figure()
    gs = gridspec.GridSpec(4, 2)
    
    fig.suptitle('Tower motion for point load at top')

    ax = fig.add_subplot(gs[0,0])
    ax.plot(thrust_time, thrust[0]/1000, 'b')
    ax.set_ylabel('Thrust (kN)')
    
    ax = fig.add_subplot(gs[1:3,0])
    ax.plot(t, -100*y[1][:,2], 'b', label='Mine')
    ax.plot(t,  100*bladed_defl[:,0], 'k--', label='Bladed')
    ax.set_ylabel('x defl (cm)')
    ax.legend(frameon=False)
    #ax.set_ylim((0,0.045))
    plt.setp(ax.get_legend().get_texts(), fontsize='small')

    ax = fig.add_subplot(gs[1:3,1])
    ax.plot(t, y[2][:,1], 'b', label='Mine (midspan)')
    ax.plot(t, bladed_defl[:,1], 'k--', label='Bladed')
    ax.set_ylabel('y rot (rad)')
    
    ax = fig.add_subplot(gs[3,0])
    ax.plot(t, y[0][:,1])
    ax.set_ylabel('Transverse mode')
    
    ax = fig.add_subplot(gs[3,1])
    ax.plot(t, y[0][:,[4,6]])
    ax.set_ylabel('Rotation & normal modes')
Beispiel #22
0
    def move_upperSlider(self):
        """ Re-setup upper range line in figure.
        Triggered by a change in Qt Widget.  NO EVENT is required.
        """
        inewy = self.ui.verticalSlider.value()

        # Return w/o change
        if inewy == self._upperSlideValue:
            return

        # Set to boundary value
        if inewy <= self._lowerSlideValue:
            inewy = self._lowerSlideValue + 1

        # Reset line editor?
        if inewy == 100 and self._upperSlideValue > 100:
            setLineEdit = False
        else:
            setLineEdit = True

        # Move the upper value bar: upperx and uppery are real value (float but not (0,100)) of the figure
        ylim = self.ui.mainplot.get_ylim()
        newy = ylim[0] + inewy*(ylim[1] - ylim[0])*0.01
        upperx = self.ui.mainplot.get_xlim()
        uppery = [newy, newy]
        setp(self.upperslideline, xdata=upperx, ydata=uppery)

        self.ui.graphicsView.draw()

            # Change value
        if setLineEdit is True:
            self.ui.lineEdit_6.setText(str(newy))
            self._upperSlideValue = inewy

        return
Beispiel #23
0
def do_plot(mds, plot, ymax, extra=None):
    fig = plt.figure()
    ax = fig.add_subplot(111)
    steps = mds.Steps.Steps
    values = mds.MDS.Values
    if ymax is None:
        ymax = np.max(values)
    Graph.timeSeries(ax, steps, values, 'b', label='MDS', Ave=True)
    plt.xlabel('time')
    plt.ylabel(r'$ops/sec$')
    if not mds.CPU is None:
        values = mds.CPU.Values
        (handles, labels) = Graph.percent(ax, steps, values, 'k',
                                          label='% CPU', Ave=True)
        if (not handles is None) and (not labels is None):
            plt.legend(handles, labels)
        else:
            print "mds.do_plot(): Warning - Plotting CPU utilization failed."
    else:
        plt.legend()
    plt.setp( ax.get_xticklabels(), rotation=30, horizontalalignment='right')
    start_time = steps[0]/(24.0*60.0*60.0) + mpl.dates.date2num(datetime.date(1970,1,1))
    plt.title("%s metadata operations for %s" %
              (mds.name,
               mpl.dates.num2date(start_time).strftime("%Y-%m-%d"))
              )
    if ymax is None:
        ymax = ymax
    ax.set_ybound(lower=0, upper=ymax)
    if plot is None:
        plt.show()
    else:
        plt.savefig(plot)
    plt.cla()
Beispiel #24
0
def plot_bar(xlabels, Y):
    fig = plt.figure()
    ax = fig.add_subplot(111)
    
    ## the data
    N = len(Y)
    ## necessary variables
    ind = np.arange(N)                # the x locations for the groups
    width = 0.35                      # the width of the bars
    
    ## the bars
    rects1 = ax.bar(ind, Y, width,
                    color='red')
    
    ax.set_xlim(-width,len(ind)+width)
    ax.set_ylim(0, max(Y)*1.2)
    ax.set_ylabel('Counts')
    ax.set_title('Counts by country')
    #xTickMarks = ['Group'+str(i) for i in range(1,6)]
    ax.set_xticks(ind+width)
    xtickNames = ax.set_xticklabels(xlabels)
    plt.setp(xtickNames, rotation=40, fontsize=10, ha='right')
    
    ## add a legend
    #ax.legend( (rects1[0], rects2[0]), ('Men', 'Women') )
    plt.tight_layout()
    plt.show()
Beispiel #25
0
def plot_tfidf_classfeats(dfs):
    fig = plt.figure(figsize=(12, 9), facecolor="w")
    for i, df in enumerate(dfs):

        ax = fig.add_subplot(len(dfs), 1, i+1)
        ax.spines["top"].set_visible(False)
        ax.spines["right"].set_visible(False)
        ax.set_frame_on(False)
        ax.get_xaxis().tick_bottom()
        ax.get_yaxis().tick_left()
        if i == len(dfs)-1:
            ax.set_xlabel("Feature name", labelpad=14, fontsize=14)
        ax.set_ylabel("Tf-Idf score", labelpad=16, fontsize=14)
        #if i == 0:
        ax.set_title("Mean Tf-Idf scores for label = " + str(df.label), fontsize=16)

        x = range(1, len(df)+1)
        ax.bar(x, df.tfidf, align='center', color='#3F5D7D')
        #ax.lines[0].set_visible(False)
        ax.set_xticks(x)
        ax.set_xlim([0,len(df)+1])
        xticks = ax.set_xticklabels(df.feature)
        #plt.ylim(0, len(df)+2)
        plt.setp(xticks, rotation='vertical') #, ha='right', va='top')
        plt.subplots_adjust(bottom=0.24, right=1, top=0.97, hspace=0.9)

    plt.show()
Beispiel #26
0
 def _drawScatterPlot(self,dates, values, plotidx, plotcount, title, refaxs):
     if( refaxs == None):
         logging.debug("initializing scatter plot")
         fig = plt.figure()
         #1 inch height for each author graph. So recalculate with height. Else y-scale get mixed.
         figHt = float(self.commitGraphHtPerAuthor*plotcount)
         fig.set_figheight(figHt)
         #since figureheight is in inches, set around maximum of 0.75 inches margin on top.
         topmarginfrac = min(0.15, 0.85/figHt)
         logging.debug("top/bottom margin fraction is %f" % topmarginfrac)
         fig.subplots_adjust(bottom=topmarginfrac, top=1.0-topmarginfrac, left=0.05, right=0.95)
     else:
         fig = refaxs.figure
         
     axs = fig.add_subplot(plotcount, 1, plotidx,sharex=refaxs,sharey=refaxs)
     axs.grid(True)
     axs.plot_date(dates, values, marker='.', xdate=True, ydate=False)
     axs.autoscale_view()
     
     #Pass None as 'handles' since I want to display just the titles
     axs.set_title(title, fontsize='small',fontstyle='italic')
     
     self._setXAxisDateFormatter(axs)        
     plt.setp( axs.get_xmajorticklabels(), visible=False)
     plt.setp( axs.get_xminorticklabels(), visible=False)
                 
     return(axs)
Beispiel #27
0
def plot_all_trees(p,title='str'):
#=====================================================
    """ Plots all rooted trees of order p.

        **Example**:

        Plot all trees of order 4::

            >>> from nodepy import rt
            >>> rt.plot_all_trees(4)  # doctest: +ELLIPSIS
            <matplotlib.figure.Figure object at ...>
    """
    import matplotlib.pyplot as pl
    forest=list_trees(p)
    nplots=len(forest)
    nrows=int(np.ceil(np.sqrt(float(nplots))))
    ncols=int(np.floor(np.sqrt(float(nplots))))
    if nrows*ncols<nplots: ncols=ncols+1
    for tree in forest:
        if title=='str': ttitle=tree
        else: ttitle=''
        tree.plot(nrows,ncols,forest.index(tree)+1,ttitle=ttitle)
    fig=pl.figure(1)
    pl.setp(fig,facecolor='white')
    return fig
Beispiel #28
0
    def move_rightSlider(self):
        """ Re-setup left range line in figure.
        Triggered by a change in Qt Widget.  NO EVENT is required.
        """
        newx = self.ui.horizontalSlider_2.value()
        if newx >= self._leftSlideValue and newx != self._rightSlideValue:
            # Allowed value: move the value bar
            self._rightSlideValue = newx

            xlim = self.ui.mainplot.get_xlim()
            newx = xlim[0] + newx*(xlim[1] - xlim[0])*0.01
            leftx = [newx, newx]
            lefty = self.ui.mainplot.get_ylim()
            setp(self.rightslideline, xdata=leftx, ydata=lefty)

            self.ui.graphicsView.draw()

            # Change value
            self.ui.lineEdit_4.setText(str(newx))

        else:
            # Reset the value
            self.ui.horizontalSlider_2.setValue(self._rightSlideValue)

        return
def plotSTAGE(show=False):
    fig, stage = plt.subplots(1)
    title="Stage for PT's in Nu'uuli Stream"
    #### PT1 stage N1
    stage.plot_date(PT1['stage'].index,PT1['stage'],marker='None',ls='-',color='r',label='N1')
    print 'Lowest PT1 stage: '+'%.1f'%PT1['stage'].min()
    #### PT2 stage N2
    stage.plot_date(PT2['stage'].index,PT2['stage'],marker='None',ls='-',color='y',label='N2')

    ## show storm intervals?
    showstormintervals(stage,shade_color='g',show=True)
    
    #### Format X axis and Primary Y axis
    stage.set_title(title)
    stage.set_ylabel('Stage height in cm')
    stage.set_ylim(0,145)
    stage.legend(loc=2)
    #### Add Precip data from Timu1
    AddTimu1(fig,stage,Precip['Timu-Nuuuli1-15'])
    AddTimu1(fig,stage,Precip['Timu-Nuuuli2-15'],LineColor='g')
    
    plt.setp(stage.get_xticklabels(),rotation='vertical',fontsize=9)
    plt.subplots_adjust(left=0.1,right=0.83,top=0.93,bottom=0.15)
    #### Legend
    plt.legend(loc=1)
    fig.canvas.manager.set_window_title('Figure 1: '+title) 
    stage.grid(True)
    show_plot(show)
    return
def plot( name, data ) :
    
    dates = data["date"]
    times = data["time"]

    ddiff = max(dates)-min(dates)
    
    plt.close()
    plt.figure()    
    
    plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%b-%d %X'))
    
    # set x-axis scale
    if ddiff.days > 60 :
        plt.gca().xaxis.set_major_locator(mdates.MonthLocator())
    elif ddiff.days > 2 :
        plt.gca().xaxis.set_major_locator(mdates.DayLocator())
    else :
        plt.gca().xaxis.set_major_locator(mdates.HourLocator())

    plt.plot( dates, times, 'bo-' )
    plt.gcf().autofmt_xdate()    

    plt.title( name )
    plt.xlabel( "Date" )
    plt.ylabel( "Time (s)" )
    plt.grid(True)
    plt.setp(plt.gca().get_xmajorticklabels(), size=6,rotation=30) 
#    plt.show()
    plt.savefig( name )
def create_eval_plot(df_dice, df_haus=None, df_hd=None, df_vol=None, eval=None):
    """
    Create a violinplot with an integrated bland altmann plot
    Nobs = median
    Expects the following dataframe structure (created in notebooks/Evaluate/Evaluate_create_plots.ipynb):
        Name 	Dice LV 	Volume LV 	Err LV(ml) 	Hausdorff LV 	Dice RV 	Volume RV 	Err RV(ml) 	Hausdorff RV 	Dice MYO 	Volume MYO 	Err MYO(ml) 	Hausdorff MYO
    0 	0000-0HQQW4ZN_2007-05-23_ED_msk 	0.897436 	110.887500 	-7.106250 	5.744563 	0.868490 	149.231250 	-30.600000 	7.211103 	0.619342 	57.768750 	-2.925000 	10.000000
    1 	0000-0HQQW4ZN_2007-05-23_ES_msk 	0.850738 	43.443750 	4.921875 	4.123106 	0.830049 	82.743750 	-3.862500 	10.816654 	0.695500 	51.993750 	2.325000 	5.830952
    Parameters
    ----------
    df_dice : pd.dataframe - melted dice dataframe
    df_haus : pd.dataframe - melted dataframe with the hausdorff
    df_hd : pd.dataframe - melted dataframe with the difference (pred-gt) of the volumes
    df_vol : pd.dataframe - melted dataframe with the predicted volume
    eval : pd.dataframe - full dataframe as shown in the fn description

    Returns
    -------

    """

    import seaborn as sns
    outliers = False
    # make sure the color schema reflects the RGB schema of show_slice_transparent
    my_pal_1 = {"Dice LV": "dodgerblue", "Dice MYO": "g", "Dice RV": "darkorange"}
    my_pal_2 = {"Err LV(ml)": "dodgerblue", "Err MYO(ml)": "g", "Err RV(ml)": "darkorange"}
    my_pal_3 = {"Volume LV": "dodgerblue", "Volume MYO": "g", "Volume RV": "darkorange"}
    hd_pal = {"Hausdorff LV": "dodgerblue", "Hausdorff MYO": "g", "Hausdorff RV": "darkorange"}

    plt.rcParams.update({'font.size': 20})
    if df_haus is not None:
        fig, (ax1, ax2, ax3, ax4) = plt.subplots(1, 4, figsize=(25, 8), sharey=False)
    else:
        fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(25, 8), sharey=False)

    ax1 = sns.violinplot(x='variable', y='value', data=df_dice, order=["Dice LV", "Dice MYO", "Dice RV"],
                         palette=my_pal_1, showfliers=outliers, ax=ax1)
    mean = df_dice.groupby(['variable'])['value'].mean().round(2)
    sd = df_dice.groupby(['variable'])['value'].std().round(2)
    nobs = ['{}+/-{}'.format(m, s) for m, s in zip(mean, sd)]

    for tick, label in zip(range(len(ax1.get_xticklabels())), ax1.get_xticklabels()):
        _ = ax1.text(tick, mean[tick], nobs[tick], horizontalalignment='center', size='x-small', color='black',
                     weight='semibold')
    plt.setp(ax1, ylim=(0, 1))
    plt.setp(ax1, ylabel=('DICE'))
    plt.setp(ax1, xlabel='')
    ax1.set_xticklabels(['LV', 'MYO', 'RV'])

    # create bland altmannplot from vol diff
    ax2 = bland_altman_metric_plot(eval, ax2)

    # create violin plot for the volume
    ax3 = sns.violinplot(x='variable', y='value', order=["Volume LV", "Volume MYO", "Volume RV"], palette=my_pal_3,
                         showfliers=outliers, data=df_vol, ax=ax3)

    mean = df_vol.groupby(['variable'])['value'].mean().round(2)
    sd = df_vol.groupby(['variable'])['value'].std().round(2)
    nobs = ['{}+/-{}'.format(m, s) for m, s in zip(mean, sd)]

    for tick, label in zip(range(len(ax3.get_xticklabels())), ax3.get_xticklabels()):
        _ = ax3.text(tick, mean[tick], nobs[tick], horizontalalignment='center', size='x-small', color='black',
                     weight='semibold')
    # plt.setp(ax3, ylim=(0,500))
    plt.setp(ax3, ylabel=('Vol size in ml'))
    plt.setp(ax3, xlabel='')
    ax3.set_xticklabels(['LV', 'MYO', 'RV'])

    ax4 = sns.violinplot(x='variable', y='value', order=["Hausdorff LV", "Hausdorff MYO", "Hausdorff RV"],
                         palette=hd_pal,
                         showfliers=outliers, data=df_haus, ax=ax4)

    mean = df_haus.groupby(['variable'])['value'].mean().round(2)
    sd = df_haus.groupby(['variable'])['value'].std().round(2)
    nobs = ['{}+/-{}'.format(m, s) for m, s in zip(mean, sd)]

    for tick, label in zip(range(len(ax4.get_xticklabels())), ax4.get_xticklabels()):
        _ = ax4.text(tick, mean[tick], nobs[tick], horizontalalignment='center', size='x-small', color='black',
                     weight='semibold')
    plt.setp(ax4, ylim=(0, 50))
    plt.setp(ax4, ylabel=('Hausdorff distance'))
    plt.setp(ax4, xlabel='')
    ax4.set_xticklabels(['LV', 'MYO', 'RV'])
    plt.tight_layout()
    return fig
Beispiel #32
0
 def _create_axes(self):
     self.ax = self.figure.add_axes((0, 0, 1, 1), axisbg=[0.5] * 3)
     # self.plot(None)
     # self.ax.plot( np.random.randn(10) )
     pyplot.setp(self.ax, xticks=[], yticks=[])
Beispiel #33
0
plot = df1.max().plot.pie(y=df1.max().index, figsize=(5, 5),autopct=absolute_value, label='')
plot.set_title('Total Number of Deaths', fontsize=12)
pyplot.show()

#Credit https://matplotlib.org/3.1.1/gallery/images_contours_and_fields/image_annotated_heatmap.html
import numpy as np
from matplotlib import pyplot
df1 = df1.tail(15)
dates = df1.index.strftime('%Y-%b-%d')
countries = df1.max().index
df2 = pd.DataFrame(df1, columns=df1.columns).astype(int)
matrix = np.array(df2).transpose()
fig, ax = pyplot.subplots()
im = ax.imshow(matrix)
# We want to show all ticks...
ax.set_xticks(np.arange(len(dates)))
ax.set_yticks(np.arange(len(countries)))
# ... and label them with the respective list entries
ax.set_xticklabels(dates)
ax.set_yticklabels(countries)
# Rotate the tick labels and set their alignment.
pyplot.setp(ax.get_xticklabels(), rotation=45, ha="right",
         rotation_mode="anchor")
# Loop over data dimensions and create text annotations.
for i in range(len(dates)):
    for j in range(len(countries)):
        text = ax.text(i, j, matrix[j, i],
                       ha="center", va="center", color="w", size = '6')
ax.set_title("Deaths Per Day Heatmap")
fig.tight_layout()
pyplot.show()
Beispiel #34
0
                channels=CHANNELS,
                rate=RATE,
                input=True,
                output=True,
                frames_per_buffer=CHUNK)

x = np.arange(0, 2 * CHUNK, 2)

line, = ax.plot(x, np.random.rand(CHUNK), '-', lw=2)

ax.set_title('AUDIO WAVEFORM')
ax.set_xlabel('samples')
ax.set_ylabel('volume')
ax.set_ylim(0, 255)
ax.set_xlim(0, 2 * CHUNK)
plt.setp(ax, xticks=[0, CHUNK, 2 * CHUNK], yticks=[0, 128, 255])

plt.show(block=False)

print('stream started')

#for measuring framerate

frame_count = 0
start_time = time.time()

while True:
    # bin data
    data = stream.read(CHUNK)

    #convert data to integers, make np array, then offset it by 127
def main(algo, nb_games, txt_to_read, n_test, Verbose=False, sup=18, new_winning_dataset = False, txt = 'test.csv'): #new_winning_dataset = True if the dataset has not been generated yet
                                                                                                                          #txt to name the output csv, txt_to_read to get the name of the csv to get
    win = 0
    tie = 0
    loss = 0
    nb_games_played = 0

    # initialization of the game
    df = pd.DataFrame(columns = ['player_hand_value','dealer_first_card', 'usable_ace', 'deck_value' , 'action',1,2,3,4,5,6,7,8,9,10])

    # while loop to run enough games to store nb_games
    if new_winning_dataset :
        while (nb_games_played < nb_games) :
            player_hand, dealer_first_card, usable_ace = env.new_game()

            # in the official rules, there can only be a maximum of 2 passes, but we will not implement this rule
            # (not relevant)
            # theoretically ,there cannot be more than 11 passes (4*aces, 4*two, 3*three)
            for t in range(11):
                act = action(algo, player_hand, sup, dealer_first_card, usable_ace, t)
                # If the player has a blackjack, he automatically stands
                if sum(player_hand) == 21 :
                    act = 0

                # features enabling to count the cards
                deck_value = env.get_deck_value()
                deck_counting_cards = env.get_deck_cards_counting()

                if (t == 0) :
                    state = [bj.sum_hand(player_hand), dealer_first_card, bj.has_ace(player_hand)*1, deck_value,act] + list(deck_counting_cards)
                    opposite_state = [bj.sum_hand(player_hand), dealer_first_card, bj.has_ace(player_hand)*1, deck_value, 1 - act] + list(deck_counting_cards)

                observation, reward, done, info = env.step(act)
                player_hand, dealer_first_card, usable_ace = observation

                if done:
                    # if the player won the game, we store the game
                    if reward >= 0:
                        df.loc[nb_games_won] = state
                    else :
                        df.loc[nb_games_won] = opposite_state
                    nb_games_played += 1
                    if (nb_games_played % (nb_games//10) == 0) :
                        print('|', end='')
                    break

        env.close()
        df.to_csv(txt,index = False)

    else :
        df = pd.read_csv(txt_to_read)

    # Train the model with the dataset
    model = Sequential()
    model.add(Dense(16, kernel_initializer='lecun_uniform'))
    model.add(Activation('relu'))

    model.add(Dense(256, kernel_initializer='lecun_uniform'))
    model.add(Activation('relu'))

    model.add(Dense(128, kernel_initializer='lecun_uniform'))
    model.add(Activation('relu'))

    model.add(Dense(32, kernel_initializer='lecun_uniform'))
    model.add(Activation('relu'))

    model.add(Dense(8, kernel_initializer='lecun_uniform'))
    model.add(Activation('relu'))
        
    model.add(Dense(1, kernel_initializer='lecun_uniform'))
    model.add(Activation('sigmoid'))

    model.compile(loss='mse', optimizer='adam')

    X_train = np.array(df[['dealer_first_card','player_hand_value', 'usable_ace','deck_value']])
    y_train = np.array(df['action']).reshape(-1,1)
    model.fit( X_train, y_train, epochs=20)

    #ROC CURVE : play 10000 games and test predict them
    actuals = []
    pred_Y_train = []

    for i in range(10000) :
            player_hand, dealer_first_card, usable_ace = env.new_game()
            for t in range(11):
                act = action(algo, player_hand, sup, dealer_first_card, usable_ace, t)
                if sum(player_hand) == 21 :
                    act = 0
                deck_value = env.get_deck_value()
                deck_counting_cards = env.get_deck_cards_counting()

                if (t == 0) :
                    state = [bj.sum_hand(player_hand), dealer_first_card, bj.has_ace(player_hand)*1, deck_value, act] 
                    opposite_state = [bj.sum_hand(player_hand), dealer_first_card, bj.has_ace(player_hand)*1, deck_value, 1 - act] 

                    cur_state = [[bj.sum_hand(player_hand), dealer_first_card, bj.has_ace(player_hand)*1, deck_value]]
                    p = model.predict(np.array(cur_state)[0:1], batch_size=1)            
                    pred_Y_train.append(p[0][0])

                observation, reward, done, info = env.step(act)
                player_hand, dealer_first_card, usable_ace = observation

                if done:
                    if reward >= 0:
                        actuals.append(state[4])
                    else :
                        actuals.append(opposite_state[4])
                    break

    env.close()
    
    fpr, tpr, threshold = metrics.roc_curve(actuals, pred_Y_train)
    roc_auc = metrics.auc(fpr, tpr)

    fig, ax = plt.subplots(figsize=(10,8))
    plt.plot(fpr, tpr, label = ('ROC AUC = %0.3f' % roc_auc))

    plt.legend(loc = 'lower right')
    plt.plot([0, 1], [0, 1],'r--')
    plt.xlim([0, 1])
    plt.ylim([0, 1])
    ax.set_xlabel("False Positive Rate",fontsize=12)
    ax.set_ylabel("True Positive Rate",fontsize=12)
    plt.setp(ax.get_legend().get_texts(), fontsize=12)
    plt.show()



    # Use the model to predict
    for i_game in range(n_test):

        player_hand, dealer_first_card, usable_ace = env.new_game()

        # in the official rules, there can only be a maximum of 2 passes, but we will not implement this rule
        # (not relevant)
        # theoretically ,there cannot be more than 11 passes (4*aces, 4*two, 3*three)
        for t in range(11):
            # Counting the cards
            deck_value = env.get_deck_value()
            deck_counting_cards = env.get_deck_cards_counting()

            # Choosing the next action
            state = [[bj.sum_hand(player_hand),dealer_first_card, bj.has_ace(player_hand)*1,deck_value]] 
            act = 0
            p = model.predict(np.array(state)[0:1], batch_size=1)
            if ( (p > 0.5)) :
                act = 1
            
            # Playing
            observation, reward, done, info = env.step(act)
            player_hand, dealer_first_card, usable_ace = observation

            if done:
                if reward >= 1:
                    win += 1

                elif reward == 0:
                    tie += 1

                elif reward == -1:
                    loss += 1

                break

    # percentage of winning games
    return 100 * win / n_test, 100 * tie / n_test, 100 * loss/n_test
Beispiel #36
0
def vis_one_image(
        im, im_name, output_dir, boxes, segms=None, keypoints=None, thresh=0.9,
        kp_thresh=2, dpi=200, box_alpha=0.0, dataset=None, show_class=False,
        ext='pdf'):
    """Visual debugging of detections."""
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    if isinstance(boxes, list):
        boxes, segms, keypoints, classes = convert_from_cls_format(
            boxes, segms, keypoints)

    if boxes is None or boxes.shape[0] == 0 or max(boxes[:, 4]) < thresh:
        return

    dataset_keypoints, _ = keypoint_utils.get_keypoints()

    if segms is not None and len(segms) > 0:
        masks = mask_util.decode(segms)

    color_list = colormap(rgb=True) / 255

    kp_lines = kp_connections(dataset_keypoints)
    cmap = plt.get_cmap('rainbow')
    colors = [cmap(i) for i in np.linspace(0, 1, len(kp_lines) + 2)]

    fig = plt.figure(frameon=False)
    fig.set_size_inches(im.shape[1] / dpi, im.shape[0] / dpi)
    ax = plt.Axes(fig, [0., 0., 1., 1.])
    ax.axis('off')
    fig.add_axes(ax)
    ax.imshow(im)

    # Display in largest to smallest order to reduce occlusion
    areas = (boxes[:, 2] - boxes[:, 0]) * (boxes[:, 3] - boxes[:, 1])
    sorted_inds = np.argsort(-areas)

    mask_color_id = 0
    for i in sorted_inds:
        bbox = boxes[i, :4]
        score = boxes[i, -1]
        if score < thresh:
            continue

        # show box (off by default)
        ax.add_patch(
            plt.Rectangle((bbox[0], bbox[1]),
                          bbox[2] - bbox[0],
                          bbox[3] - bbox[1],
                          fill=False, edgecolor='g',
                          linewidth=0.5, alpha=box_alpha))

        if show_class:
            ax.text(
                bbox[0], bbox[1] - 2,
                get_class_string(classes[i], score, dataset),
                fontsize=3,
                family='serif',
                bbox=dict(
                    facecolor='g', alpha=0.4, pad=0, edgecolor='none'),
                color='white')

        # show mask
        if segms is not None and len(segms) > i:
            img = np.ones(im.shape)
            color_mask = color_list[mask_color_id % len(color_list), 0:3]
            mask_color_id += 1

            w_ratio = .4
            for c in range(3):
                color_mask[c] = color_mask[c] * (1 - w_ratio) + w_ratio
            for c in range(3):
                img[:, :, c] = color_mask[c]
            e = masks[:, :, i]

            _, contour, hier = cv2.findContours(
                e.copy(), cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE)

            for c in contour:
                polygon = Polygon(
                    c.reshape((-1, 2)),
                    fill=True, facecolor=color_mask,
                    edgecolor='w', linewidth=1.2,
                    alpha=0.5)
                ax.add_patch(polygon)

        # show keypoints
        if keypoints is not None and len(keypoints) > i:
            kps = keypoints[i]
            plt.autoscale(False)
            for l in range(len(kp_lines)):
                i1 = kp_lines[l][0]
                i2 = kp_lines[l][1]
                if kps[2, i1] > kp_thresh and kps[2, i2] > kp_thresh:
                    x = [kps[0, i1], kps[0, i2]]
                    y = [kps[1, i1], kps[1, i2]]
                    line = plt.plot(x, y)
                    plt.setp(line, color=colors[l], linewidth=1.0, alpha=0.7)
                if kps[2, i1] > kp_thresh:
                    plt.plot(
                        kps[0, i1], kps[1, i1], '.', color=colors[l],
                        markersize=3.0, alpha=0.7)

                if kps[2, i2] > kp_thresh:
                    plt.plot(
                        kps[0, i2], kps[1, i2], '.', color=colors[l],
                        markersize=3.0, alpha=0.7)

            # add mid shoulder / mid hip for better visualization
            mid_shoulder = (
                kps[:2, dataset_keypoints.index('right_shoulder')] +
                kps[:2, dataset_keypoints.index('left_shoulder')]) / 2.0
            sc_mid_shoulder = np.minimum(
                kps[2, dataset_keypoints.index('right_shoulder')],
                kps[2, dataset_keypoints.index('left_shoulder')])
            mid_hip = (
                kps[:2, dataset_keypoints.index('right_hip')] +
                kps[:2, dataset_keypoints.index('left_hip')]) / 2.0
            sc_mid_hip = np.minimum(
                kps[2, dataset_keypoints.index('right_hip')],
                kps[2, dataset_keypoints.index('left_hip')])
            if (sc_mid_shoulder > kp_thresh and
                    kps[2, dataset_keypoints.index('nose')] > kp_thresh):
                x = [mid_shoulder[0], kps[0, dataset_keypoints.index('nose')]]
                y = [mid_shoulder[1], kps[1, dataset_keypoints.index('nose')]]
                line = plt.plot(x, y)
                plt.setp(
                    line, color=colors[len(kp_lines)], linewidth=1.0, alpha=0.7)
            if sc_mid_shoulder > kp_thresh and sc_mid_hip > kp_thresh:
                x = [mid_shoulder[0], mid_hip[0]]
                y = [mid_shoulder[1], mid_hip[1]]
                line = plt.plot(x, y)
                plt.setp(
                    line, color=colors[len(kp_lines) + 1], linewidth=1.0,
                    alpha=0.7)

    output_name = os.path.basename(im_name) + '.' + ext
    fig.savefig(os.path.join(output_dir, '{}'.format(output_name)), dpi=dpi)
    plt.close('all')
def  environmentalgraph2(source,days,delay):


	
	print("environmentalgraph2 source:%s days:%s" % (source,days))
	print("sleeping seconds:", delay)
	time.sleep(delay)
	print("envrironmentalgraph2 running now")
	

	# blink GPIO LED when it's run
	GPIO.setmode(GPIO.BOARD)
        GPIO.setup(22, GPIO.OUT)
        GPIO.output(22, False)
        time.sleep(0.5)
        GPIO.output(22, True)

	# now we have get the data, stuff it in the graph 

	try:
		print("trying database")
    		db = mdb.connect('localhost', 'root', conf.databasePassword, 'ProjectCuracao');

    		cursor = db.cursor()

		query = "SELECT TimeStamp, BarometricPressure, Luminosity, FanState FROM environmentaldata where  now() - interval %i hour < TimeStamp" % (days*24)
		#query = "SELECT TimeStamp, InsideTemperature, InsideHumidity, OutsideTemperature, BarometricPressure, Luminosity, FanState  FROM environmentaldata where  now() - interval %i hour < TimeStamp" % (days*24)
		cursor.execute(query)
		result = cursor.fetchall()

		t = []
		s = []
		u = []
		v = []

		for record in result:
  			t.append(record[0])
  			s.append(record[1])
  			u.append(record[2])
  			v.append(record[3])

		#dts = map(datetime.datetime.fromtimestamp, s)
		#fds = dates.date2num(t) # converted
		# matplotlib date format object
		hfmt = dates.DateFormatter('%m/%d-%H')

		fig = pyplot.figure()
		
		ax = fig.add_subplot(111)
		
                #ax.vlines(fds, -200.0, 1000.0,colors='w')
                ax.xaxis.set_major_locator(dates.HourLocator(interval=6))
		ax.xaxis.set_major_formatter(hfmt)
		pylab.xticks(rotation='vertical')

		pyplot.subplots_adjust(bottom=.3)
		pylab.plot(t, s, color='b',label="Barometric Pressure (mb) ",linestyle="-",marker=".")
		pylab.xlabel("Hours")
		pylab.ylabel("millibars")
		pylab.legend(loc='upper left')
		pylab.axis([min(t), max(t), 900, 1100])
		ax2 = pylab.twinx()
		pylab.ylabel("lux and  fan(0/1) ")

		# scale array

		for i in range(len(v)):
			v[i] = v[i] * 500
		

		pylab.plot(t, u, color='y',label="Luminosity (lux)",linestyle="-",marker=".")
		pylab.plot(t, v, color='r',label="Fan State (0/1)",linestyle="-",marker=".")
		pylab.axis([min(t), max(t), 0, max(u)])
		pylab.legend(loc='lower left')
		pylab.figtext(.5, .05, ("Environmental Statistics Last %i Days" % days),fontsize=18,ha='center')

		#pylab.grid(True)

		pyplot.setp( ax.xaxis.get_majorticklabels(), rotation=70)
		ax.xaxis.set_major_formatter(dates.DateFormatter('%m/%d-%H'))
		pyplot.show()
		pyplot.savefig("/home/pi/RasPiConnectServer/static/environmentalgraph2.png")	
		
	except mdb.Error, e:
  
    		print "Error %d: %s" % (e.args[0],e.args[1])
Beispiel #38
0
    def plot_colors(self, xind, yind, **kws):
        """Plots color labels between the dendrogram and the heatmap

        Parameters
        ----------
        heatmap_kws : dict
            Keyword arguments heatmap
        """
        # Remove any custom colormap and centering
        kws = kws.copy()
        kws.pop('cmap', None)
        kws.pop('center', None)
        kws.pop('vmin', None)
        kws.pop('vmax', None)
        kws.pop('robust', None)
        kws.pop('xticklabels', None)
        kws.pop('yticklabels', None)

        # Plot the row colors
        if self.row_colors is not None:
            matrix, cmap = self.color_list_to_matrix_and_cmap(self.row_colors,
                                                              yind,
                                                              axis=0)

            # Get row_color labels
            if self.row_color_labels is not None:
                row_color_labels = self.row_color_labels
            else:
                row_color_labels = False

            heatmap(matrix,
                    cmap=cmap,
                    cbar=False,
                    ax=self.ax_row_colors,
                    xticklabels=row_color_labels,
                    yticklabels=False,
                    **kws)

            # Adjust rotation of labels
            if row_color_labels is not False:
                plt.setp(self.ax_row_colors.get_xticklabels(), rotation=90)
        else:
            despine(self.ax_row_colors, left=True, bottom=True)

        # Plot the column colors
        if self.col_colors is not None:
            matrix, cmap = self.color_list_to_matrix_and_cmap(self.col_colors,
                                                              xind,
                                                              axis=1)

            # Get col_color labels
            if self.col_color_labels is not None:
                col_color_labels = self.col_color_labels
            else:
                col_color_labels = False

            heatmap(matrix,
                    cmap=cmap,
                    cbar=False,
                    ax=self.ax_col_colors,
                    xticklabels=False,
                    yticklabels=col_color_labels,
                    **kws)

            # Adjust rotation of labels, place on right side
            if col_color_labels is not False:
                self.ax_col_colors.yaxis.tick_right()
                plt.setp(self.ax_col_colors.get_yticklabels(), rotation=0)
        else:
            despine(self.ax_col_colors, left=True, bottom=True)
Beispiel #39
0
def periodAnalysisPlot(folder, name='PeriodicityAll5.npz'):
    npzfile = np.load(os.path.join(folder, name))
    period_array = npzfile['arr_0']
    QD_array = npzfile['arr_1']
    width_array = npzfile['arr_2']
    count_array = npzfile['arr_3']
    period_list = period_array.tolist()
    period_list = [0 if x is None else x for x in period_list]
    period_array = np.array(period_list)
    #print(period_array.tolist())
    #print(width_array[np.where(period_array==0)], QD_array[np.where(period_array==0)], count_array[np.where(period_array==0)])

    fig, ax = plt.subplots(1, 1)
    total = period_array.size
    bin_number = np.ceil(np.sqrt(total)) // 2 * 2 + 1
    bins = np.linspace(-.5, 15, num=17)
    print(period_array.tolist())
    ax.hist(period_array,
            log=True,
            normed=True,
            bins=bins,
            alpha=1,
            label='Period of Memory',
            rwidth=0.8)
    ax.set_xlabel('Period')
    ax.set_ylabel('Probability of occurring')

    fig, ax = plt.subplots(1, 1)
    total = period_array.size
    bin_number = np.ceil(np.sqrt(total)) // 2 * 2 + 1
    bins = np.linspace(-0.5, 15, num=7)
    print(period_array.tolist())
    ax.hist(period_array,
            log=True,
            bins=bins,
            alpha=1,
            label='Period of Memory',
            rwidth=0.8)
    ax.set_xlabel('Period')
    ax.set_ylabel('Number of occurrences')

    data_dict = {
        'version': count_array,
        'QD': QD_array * 100,
        'Width': width_array * 1e-9,
        'Count': period_array
    }

    data_df = pd.DataFrame(data_dict)
    grouped = data_df.groupby('version')

    data = data_df.groupby(by=['Width', 'QD']).mean()
    piv = pd.pivot_table(data,
                         values='Count',
                         index=['QD'],
                         columns=['Width'],
                         fill_value=0)

    plt.figure()
    yticks = piv.index.values.round(2).tolist()[::4]
    ax = sns.heatmap(piv,
                     vmin=0,
                     vmax=6,
                     square=True,
                     yticklabels=yticks[::1],
                     cbar_kws={'label': 'Average period of lattice'},
                     cmap='Blues',
                     xticklabels=4)
    ax.set_yticks(np.array(yticks) * ax.get_ylim()[1] / 10.)
    ax.invert_yaxis()
    plt.tight_layout()
    ax.set_ylabel('Quenched Disorder (%)')
    ax.set_xlabel('Width (nm)')
    plt.setp(ax.get_xticklabels(), rotation=90, horizontalalignment='right')
    plt.setp(ax.get_yticklabels(), rotation=0, verticalalignment='top')

    for vers, group in grouped:
        print(vers)
        data = group.groupby(by=['Width', 'QD']).mean()
        piv = pd.pivot_table(data,
                             values='Count',
                             index=['QD'],
                             columns=['Width'],
                             fill_value=0)
        plt.figure()
        print(piv.index.values.round(2))
        print(list(piv.index.values.round(2))[::4])
        print(piv.index.values.round(2).tolist()[::4])
        yticks = piv.index.values.round(2).tolist()[::4]
        ax = sns.heatmap(piv,
                         vmin=0,
                         vmax=6,
                         square=True,
                         yticklabels=yticks[::1],
                         cbar_kws={'label': 'Average period of lattice'},
                         cmap='Blues',
                         xticklabels=4)
        ax.set_yticks(np.array(yticks) * ax.get_ylim()[1] / 10.)
        ax.invert_yaxis()
        plt.tight_layout()
        ax.set_ylabel('Quenched Disorder (%)')
        ax.set_xlabel('Width (nm)')
        plt.setp(ax.get_xticklabels(),
                 rotation=90,
                 horizontalalignment='right')
        plt.setp(ax.get_yticklabels(), rotation=0, verticalalignment='top')
def plot_confusion_matrix(y_true, y_pred, classes,
                          normalize=False,
                          title=None,
                          cmap=plt.cm.Blues):
    '''
    This function prints and plots the confusion matrix.
    Normalization can be applied by setting `normalize=True`.
    Parameters
    ----------
    y_true :
    y_pred :
    classes :
    normalize :
    title :
    cmap :

    Returns
    -------

    '''
    if not title:
        if normalize:
            title = 'Normalized confusion matrix'
        else:
            title = 'Confusion matrix, without normalization'

    # Compute confusion matrix
    cm = confusion_matrix(y_true, y_pred)
    # Only use the labels that appear in the data
    # classes = classes[unique_labels(y_true, y_pred)]

    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    logging.info(cm)

    fig, ax = plt.subplots(figsize=(15, 10))
    im = ax.imshow(cm, interpolation='nearest', cmap=cmap)
    ax.figure.colorbar(im, ax=ax)
    # We want to show all ticks...
    ax.set(xticks=np.arange(cm.shape[1]),
           yticks=np.arange(cm.shape[0]),
           # ... and label them with the respective list entries
           xticklabels=classes, yticklabels=classes,
           title=title,
           ylabel='True label',
           xlabel='Predicted label')

    # Rotate the tick labels and set their alignment.
    plt.setp(ax.get_xticklabels(), rotation=45, ha="right",
             rotation_mode="anchor")

    # Loop over data dimensions and create text annotations.
    fmt = '.3f' if normalize else 'd'
    thresh = cm.max() / 2.
    for i in range(cm.shape[0]):
        for j in range(cm.shape[1]):
            ax.text(j, i, format(cm[i, j], fmt),
                    ha="center", va="center",
                    color="white" if cm[i, j] > thresh else "black")
    fig.tight_layout()
    return ax
                 fnl_hght,
                 colors='white',
                 linewidths=.5,
                 zorder=101,
                 transform=ccrs.PlateCarree())

label1 = ax.clabel(cs1,
                   fontsize=6,
                   colors='white',
                   inline=1,
                   inline_spacing=2,
                   fmt='%i',
                   rightside_up=True,
                   use_clabeltext=False)
plt.setp(
    label1,
    path_effects=[PathEffects.withStroke(linewidth=1.5, foreground="black")])

label2 = ax.clabel(cs2,
                   fontsize=6,
                   colors='white',
                   inline=1,
                   inline_spacing=2,
                   fmt='%i',
                   rightside_up=True,
                   use_clabeltext=False)

for l in label1 + label2:
    l.set_rotation(0)

b1 = ax.barbs(lon,
Beispiel #42
0
        & (dataset["Parch"] == dataset.iloc[i]["Parch"])
        & (dataset["Pclass"] == dataset.iloc[i]["Pclass"]))].median()
    if not np.isnan(age_pred):
        dataset["Age"].iloc[i] = age_pred
    else:
        dataset["Age"].iloc[i] = age_med
g = sns.factorplot(x="Survived", y="Age", data=train, kind="box")
g = sns.factorplot(x="Survived", y="Age", data=train, kind="violin")
dataset["Name"].head()
dataset_title = [
    i.split(",")[1].split(".")[0].strip() for i in dataset["Name"]
]
dataset["Title"] = pd.Series(dataset_title)
dataset["Title"].head()
g = sns.countplot(x="Title", data=dataset)
g = plt.setp(g.get_xticklabels(), rotation=45)
dataset["Title"] = dataset["Title"].replace(
    [
        "Lady",
        "the Countess",
        "Countess",
        "Capt",
        "Col",
        "Don",
        "Dr",
        "Major",
        "Rev",
        "Sir",
        "Jonkheer",
        "Dona",
    ],
Beispiel #43
0
    errors.append(model.loss_)Y_index = []
errors = []

for Y in range(3, 20):
    model = MLPClassifier(solver='sgd', alpha=1e-5, hidden_layer_sizes=(Y,), random_state=1, max_iter=100000,
                          momentum=0.9,
                          activation='relu', learning_rate_init=0.001)

    model.fit(x_train, y_train)
    Y_index.append(Y)
line = plt.plot(Y_index, errors)
plt.title('test layer size for error')
plt.xlabel('hidden_layers_sizes')
plt.ylabel('error')
plt.yscale('symlog', linthreshy=0.5)
plt.setp(line, 'color', 'r', 'linewidth', 2.0)
plt.show()

model = MLPClassifier(solver='sgd', alpha=1e-5, hidden_layer_sizes=(15,), random_state=1, max_iter=100000,
                      momentum=0.9,
                      verbose=10,
                      activation='relu', learning_rate_init=0.001, tol=1e-5)

model.fit(x_train, y_train)
print( model.n_layers_)
print( model.loss_)
print( model.out_activation_)
start = time.clock()
print(model.score(x_test, y_test))
print(x_test)
print(model.predict(x_test))
def showdatas(dating_data_mat, dating_labels):
    """
    函数说明:可视化数据
    Parameters:
        dating_data_mat - 特征矩阵
        dating_labels - 分类Label
    Returns:
        无
    """
    #将fig画布分隔成1行1列,不共享x轴和y轴,fig画布的大小为(13,8)
    #当nrow=2,nclos=2时,代表fig画布被分为四个区域,axs[0][0]表示第一行第一个区域
    fig, axs = plt.subplots(nrows=2,
                            ncols=2,
                            sharex=False,
                            sharey=False,
                            figsize=(13, 8))
    number_of_lables = len(dating_labels)
    labels_colors = []
    for i in dating_labels:
        if i == 1:
            labels_colors.append('black')
        if i == 2:
            labels_colors.append('orange')
        if i == 3:
            labels_colors.append('red')

    #画出散点图,以dating_data_mat矩阵的第一(飞行常客例程)、第二列(玩游戏)数据画散点数据,散点大小为15,透明度为0.5
    axs[0][0].scatter(x=dating_data_mat[:, 0],
                      y=dating_data_mat[:, 1],
                      color=labels_colors,
                      s=15,
                      alpha=.5)
    #设置标题,x轴label,y轴label
    axs0_title_text = axs[0][0].set_title(u'每年获得的飞行常客里程数与玩视频游戏所消耗时间占比',
                                          FontProperties=font)
    axs0_xlabel_text = axs[0][0].set_xlabel(u'每年获得的飞行常客里程数',
                                            FontProperties=font)
    axs0_ylabel_text = axs[0][0].set_ylabel(u'玩视频游戏所消耗时间占比',
                                            FontProperties=font)
    plt.setp(axs0_title_text, size=9, weight='bold', color='red')
    plt.setp(axs0_xlabel_text, size=7, weight='bold', color='black')
    plt.setp(axs0_ylabel_text, size=7, weight='bold', color='black')

    #画出散点图,以dating_data_mat矩阵的第一(飞行常客例程)、第三列(冰激凌)数据画散点数据,散点大小为15,透明度为0.5
    axs[0][1].scatter(x=dating_data_mat[:, 0],
                      y=dating_data_mat[:, 2],
                      color=labels_colors,
                      s=15,
                      alpha=.5)
    #设置标题,x轴label,y轴label
    axs1_title_text = axs[0][1].set_title(u'每年获得的飞行常客里程数与每周消费的冰激淋公升数',
                                          FontProperties=font)
    axs1_xlabel_text = axs[0][1].set_xlabel(u'每年获得的飞行常客里程数',
                                            FontProperties=font)
    axs1_ylabel_text = axs[0][1].set_ylabel(u'每周消费的冰激淋公升数',
                                            FontProperties=font)
    plt.setp(axs1_title_text, size=9, weight='bold', color='red')
    plt.setp(axs1_xlabel_text, size=7, weight='bold', color='black')
    plt.setp(axs1_ylabel_text, size=7, weight='bold', color='black')

    #画出散点图,以dating_data_mat矩阵的第二(玩游戏)、第三列(冰激凌)数据画散点数据,散点大小为15,透明度为0.5
    axs[1][0].scatter(x=dating_data_mat[:, 1],
                      y=dating_data_mat[:, 2],
                      color=labels_colors,
                      s=15,
                      alpha=.5)
    #设置标题,x轴label,y轴label
    axs2_title_text = axs[1][0].set_title(u'玩视频游戏所消耗时间占比与每周消费的冰激淋公升数',
                                          FontProperties=font)
    axs2_xlabel_text = axs[1][0].set_xlabel(u'玩视频游戏所消耗时间占比',
                                            FontProperties=font)
    axs2_ylabel_text = axs[1][0].set_ylabel(u'每周消费的冰激淋公升数',
                                            FontProperties=font)
    plt.setp(axs2_title_text, size=9, weight='bold', color='red')
    plt.setp(axs2_xlabel_text, size=7, weight='bold', color='black')
    plt.setp(axs2_ylabel_text, size=7, weight='bold', color='black')
    #设置图例
    didntLike = mlines.Line2D([], [],
                              color='black',
                              marker='.',
                              markersize=6,
                              label='didntLike')
    smallDoses = mlines.Line2D([], [],
                               color='orange',
                               marker='.',
                               markersize=6,
                               label='smallDoses')
    largeDoses = mlines.Line2D([], [],
                               color='red',
                               marker='.',
                               markersize=6,
                               label='largeDoses')
    #添加图例
    axs[0][0].legend(handles=[didntLike, smallDoses, largeDoses])
    axs[0][1].legend(handles=[didntLike, smallDoses, largeDoses])
    axs[1][0].legend(handles=[didntLike, smallDoses, largeDoses])
    #显示图片
    plt.show()
Beispiel #45
0
    'Estado_Civil_tesis'
],
             axis=1)

dt = dt.fillna(0)
print dt
#asignamo el numero de clusters
k = 2
model = KM(n_clusters=k)
model = model.fit(dt)
labels = model.labels_

centro = model.cluster_centers_

colors = ['blue', 'red', 'green', 'black']
y = 0
for x in labels:
    plt.scatter(dt.iloc[y, 0], dt.iloc[y, 1], color=colors[x])
    y += 1

for x in range(k):
    lines = plt.plot(centro[x, 0], centro[x, 1], 'kx')
    plt.setp(lines, ms=15.0)
    plt.setp(lines, mew=2.0)

title = ('n de clus(k)={}').format(k)
plt.title(title)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
Beispiel #46
0
m = 25

for day in days:
    results = range(10)
    data = []
    for result in results:
        a = random.choice(range(10))
        data.append([m - a, m, m + a])
    ax = plt.subplot(1, 7, days.index(day) + 1)
    medianprops = dict(linestyle=None, linewidth=0)
    plt.boxplot(data,
                notch=0,
                sym='',
                vert=0,
                whis=0,
                medianprops=medianprops,
                patch_artist=True,
                boxprops=dict(facecolor='blue', color='white'))
    plt.xlabel(day)
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.spines['left'].set_visible(False)
    ax.yaxis.set_ticks([0])
    ax.xaxis.set_ticks([0])
    #	ax.yaxis.set_ticks([10,20,30,40])
    ax.xaxis.set_ticklabels('')
    plt.setp(ax.get_yticklabels(), visible=False)

plt.subplots_adjust(wspace=1)
plt.show()
Beispiel #47
0
def pod_recommender(throughput_list, s_rate, pod, thr, sr, incorrect_pod,
                    n_req, ttime, accu, totime):
    if len(incorrect_pod) == 3 or len(incorrect_pod) == 2:
        print(
            "The application's reource profile is imperfect and SLAs can not be verified!"
        )
        return
    elif len(incorrect_pod) == 1:
        diff = error(throughput[1], throughput[2])
        diff = round(diff, 2)
        print(
            "The maximum verified throughput is with 10 pods. The difference in throughputs of 10 and 20 pods is "
            + str(diff) + "%")
        print("The maximum throughput for this application is " +
              str(throughput[1]))
        return

    X_list = [list(a) for a in zip(throughput_list, s_rate)]
    Y_list = pod

    x_list = [list(a) for a in zip(thr, sr)]

    poly = PolynomialFeatures(degree=2)
    X_ = poly.fit_transform(X_list)
    X_test = poly.fit_transform(x_list)

    lg = LinearRegression()
    lg.fit(X_, Y_list)

    y_pred = lg.predict(X_test)
    if y_pred[0] < 0:
        y_pred[0] = 1
    rec_pods = math.ceil(y_pred[0])

    plt.rcParams.update({'font.size': 20})

    fig, axs = plt.subplots(4, 1, sharex=True, sharey=False)
    axs[0].plot(lg.predict(poly.fit_transform(X_list)),
                throughput_list,
                color='r',
                marker='o',
                label='throughput')
    axs[0].set(ylabel='Maximum Throughput')

    axs[1].plot(lg.predict(poly.fit_transform(X_list)),
                ttime,
                color='r',
                marker='o',
                label='Total time')
    axs[1].set(ylabel='Total Response Time (s)')

    axs[2].plot(lg.predict(poly.fit_transform(X_list)),
                s_rate,
                color='g',
                marker='o',
                label='Success rate')
    axs[2].set(ylabel='Maximum Success Rate')

    axs[3].bar(lg.predict(poly.fit_transform(X_list)),
               n_req,
               color='r',
               label='Total requests')
    axs[3].set(ylabel='Number of Requests', xlabel='Number of Pods')

    for ax in axs:
        ax.set_facecolor('#edf8fd')
        ax.grid()
        ax.legend(loc='upper left')

    fig.subplots_adjust(hspace=0)
    plt.setp([a.get_xticklabels() for a in fig.axes[:-1]], visible=False)

    fig.set_size_inches(25, 25)
    fig.set_dpi(80)

    plt.savefig('diagrams_loc.png')

    #print("The recommended number pods for your SLA is: "+str(rec_pods))
    n_time = len(ttime)
    sum_time = sum(ttime)
    avg_time = sum_time / n_time

    # If time is there and this is the first prediction, a accuracy can't be calculated (see description of accuracy in readme)
    if (totime - sum_time) > avg_time:
        if n_time == 3:
            print("The recommended number of pods for your SLA is: " +
                  str(rec_pods))
            print("The following verification test may be conducted:")

            req = []
            for filename in glob.glob(os.path.join(path + "/1_pod/", '*.csv')):
                filename = os.path.basename(filename)
                req.append(int(filename.split('_')[0]))
                req.sort()
            rec_pods_requests = req[0] * rec_pods
            print(
                str(rec_pods) + " pods -----> " + str(rec_pods_requests) +
                " requests")
            next_req = int((rec_pods_requests / 2) + rec_pods_requests)
            print(
                str(rec_pods) + " pods -----> " + str(next_req) + " requests")
            Y_list.append(rec_pods)
            Y_list.sort()
            with open("data.txt", "wb") as fp:
                pickle.dump(Y_list, fp)
                pickle.dump(rec_pods, fp)
            new_folder = path + "/" + str(rec_pods) + "_pod/"
            try:
                os.mkdir(new_folder)
                os.mkdir(new_folder + "resource/")
            except OSError:
                print("Folder creation failed")

        # if this is not the first prediction we also calculate accuracy
        elif n_time > 3:
            with open("data.txt", "rb") as fp:
                pod_list = pickle.load(fp)
                last = pickle.load(fp)
            acc_err = error(rec_pods, last)
            acc_err = 100 - acc_err
            if acc_err > accu[0]:
                print("The recommended number pods for your SLA is: " +
                      str(rec_pods) + ". The accuracy being " + str(acc_err) +
                      "%" + " for your SLA.")
                return

            print("The recommended number of pods for your SLA is: " +
                  str(rec_pods))
            print("The following verification test may be conducted:")

            req = []
            for filename in glob.glob(os.path.join(path + "/1_pod/", '*.csv')):
                filename = os.path.basename(filename)
                req.append(int(filename.split('_')[0]))
                req.sort()
            rec_pods_requests = req[0] * rec_pods
            print(
                str(rec_pods) + " pods -----> " + str(rec_pods_requests) +
                " requests")
            next_req = int((rec_pods_requests / 2) + rec_pods_requests)
            print(
                str(rec_pods) + " pods -----> " + str(next_req) + " requests")
            Y_list.append(rec_pods)
            Y_list.sort()
            with open("data.txt", "wb") as fp:
                pickle.dump(Y_list, fp)
                pickle.dump(rec_pods, fp)
            new_folder = path + "/" + str(rec_pods) + "_pod/"
            try:
                os.mkdir(new_folder)
                os.mkdir(new_folder + "resource/")
            except OSError:
                print("Folder creation failed")

    # if no time left
    elif (totime - sum_time) < avg_time:
        if n_time == 3:
            print("The recommended number of pods for your SLA is: " +
                  str(rec_pods))
            print("Due to time constraints it can not be verified")
            return

        elif n_time > 3:
            with open("data.txt", "rb") as fp:
                pod_list = pickle.load(fp)
                last = pickle.load(fp)
            acc_err = error(rec_pods, last)
            acc_err = 100 - acc_err
            if acc_err > accu[0]:
                print("The recommended number of pods for your SLA is: " +
                      str(rec_pods) + ". The accuracy being " + str(acc_err) +
                      "%" + " for your SLA.")
            else:
                print(
                    "The recommended number of pods for your SLA is: " +
                    str(rec_pods) +
                    ". Due to time constraints it can not be verified further."
                )
def lineplot_per_interval(df,
                          y,
                          hue,
                          y_title="",
                          start_year=DEFAULT_MIN_YEAR,
                          save_to_file=True,
                          filetype="pdf",
                          legend_loc="upper right",
                          hue_order=None,
                          legend_title="Snapshot rank",
                          estimator=np.median):
    fig, ax = plt.subplots()
    if not y_title:
        if hue:
            y_title = hue.title()
        else:
            y_title = ""

    # filter by start year
    df = df[df.year_season >= str(start_year)]

    set_plot_params()

    if hue:
        try:
            fig = sns.lineplot(data=df,
                               y=y,
                               x=INTERVAL_COL_NAME,
                               hue=hue,
                               style=hue,
                               hue_order=hue_order,
                               estimator=estimator,
                               ci=95)
        except:
            markers = list(range(1, len(hue_order) + 1))
            print(markers)
            fig = sns.lineplot(data=df,
                               y=y,
                               x=INTERVAL_COL_NAME,
                               style=hue,
                               hue=hue,
                               dashes=False,
                               markers=markers,
                               hue_order=hue_order)
        set_legend(ax, legend_title, legend_loc)
        plt.setp(fig.get_legend().get_texts(),
                 fontsize='10')  # for legend text
        plt.setp(fig.get_legend().get_title(),
                 fontsize='10')  # for legend text

    else:
        fig = sns.lineplot(data=df,
                           y=y,
                           x=INTERVAL_COL_NAME,
                           estimator=estimator)

    set_x_ticks(df)

    #fig.set(xlabel='Interval', ylabel=y_title)
    ax.set_xlabel('Interval')
    ax.set_ylabel(y_title, fontsize=10)

    # fig.set_title(y_title + " per interval")
    fig_filename = "lineplot_%s.%s" % ("_".join(
        y_title.replace("%", "pct").replace("(", "").replace(
            ")", "").lower().split()), filetype)
    if save_to_file:
        save_figure(fig, fig_filename)
    return fig
# Abtasten der drei Funktionen
x1_S = A_1 * cos(f_1 * 2 * pi * t_S + phi_1)

#%% Figure 1: Zeitbereich
fig1 = plt.figure(1)  # neue Grafik
plt.clf()
ax1 = fig1.add_subplot(111)
ax1.plot(t, x1, linewidth=3, color='r', label='$\phi_1$')

#plt.legend()

[ml, sl, bl] = ax1.stem(t_S, x1_S)
plt.setp(ml,
         'markerfacecolor',
         'k',
         marker='o',
         markeredgecolor='k',
         markeredgewidth=1.0,
         markersize=10)
plt.setp(sl, linewidth=1, color='k')
plt.setp(bl, 'color', 'white')

title_string = '$f_{sig} = %.3g \mathrm{\,Hz},\, f_{S} = %.4g \mathrm{\,Hz}$' \
                 % (f_1,f_S)
#plt.title('Analoge Signale mit gleicher Abgetasteten\n' + title_string, fontsize = 18)
#plt.title(title_string, fontsize = 16, ha = 'center', va = 'bottom')
ax1.set_xlabel(r'$t \, \mathrm{/ \, s\,} \rightarrow $', fontsize=16)
ax1.set_ylabel(r'$x \, \mathrm{/ \, V\,} \rightarrow $', fontsize=16)
ax1.text(.03,
         0.97,
         r'$F_{sig} = f_{sig} / f_S =  %.2g$' % (f_1 / f_S),
# Now plot cosine functions for frequencies -2pi/N * k
N = 128
xvalues = np.linspace(0, N, N)
for u in range(0, N):
     yvalues = np.sin(2 * np.pi * u / N * xvalues)
     plt.plot(xvalues, yvalues, 'r')
     # plt.savefig('/Users/ciezcm15/Documents/Project1/sin'+str(u)+'.png', bbox_inches='tight')
     # plt.clf()
     # print('saving image ' + str(u) + ' out of ' + str(N))

# Compute the 1-D Fourier transform of colData
F_colData = np.fft.fft(colData)

xvalues = np.linspace(-int(len(colData)/2), int(len(colData)/2)-1, len(colData))
markerline, stemlines, baseline = plt.stem(xvalues, np.fft.fftshift(np.abs(F_colData)), 'g')
plt.setp(markerline, 'markerfacecolor', 'g')
plt.setp(baseline, 'color','r', 'linewidth', 0.5)
plt.show()
# cv2.savefig('C:/Users/ciezcm15/Documents/Project1/FourierCoef.JPG', plt)

# Fourier Function complex function magnitudes
print(np.abs(F_colData))

# create the x and y coordinate arrays (here we just use pixel indices)
xx, yy = np.mgrid[0:grayImg.shape[0], 0:grayImg.shape[1]]
# create the figure
fig = plt.figure()
# ax = fig.gca(projection='3d')
#ax.plot_surface(xx, yy, grayImg, rstride=1, cstride=1, cmap=plt.cm.gray, linewidth=0)
#plt.show()
# cv2.savefig('C:/Users/ciezcm15/Documents/Project1/2DFourier.JPG', plt)
Beispiel #51
0
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('zamowienia.csv', header=0, sep = ";")

p = df.groupby(['Sprzedawca']).agg({"idZamowienia":['count']})
sprzedawcy = p.index.values
zamowienia = [p.values[y][0] for y in range(len(p.values))]
Explode = [0 for i in range(len(p.index.values))]
Explode[2]=0.1
plt.figure(figsize=(10,6))

wedges, texts, autotexts = plt.pie(zamowienia, explode=Explode, shadow=True, labels=sprzedawcy,
                                   autopct=lambda pct: "{:.1f}%".format(pct), textprops=dict(color="black"))
plt.setp(autotexts, size=10, weight="bold")
plt.legend(title='Sprzedawcy', loc='best', bbox_to_anchor=(1.5,1))
plt.show()
Beispiel #52
0
#
axes.violinplot(all_data2, showmeans=False, showmedians=True)

axes.set_title('Abdomen')
axes.set_ylim([3, 17.7])

# plot box plot
#axes[1].boxplot(all_data)
#axes[1].set_title('box plot')

# adding horizontal grid lines
#for ax in axes:
axes.yaxis.grid(True)
axes.set_xticks([y + 1 for y in range(len(all_data))])
axes.set_xlabel('')
axes.axhline(y=15, c="hotpink", zorder=0, linestyle='-',
             linewidth=2)  ## ACR DIR
axes.axhline(y=25, c="orangered", zorder=2, linestyle='--', linewidth=2)  ## EU
axes.set_ylabel('CTDI$_{\mathrm{VOL}}$ (mGy)')

# add x-tick labels
plt.setp(axes,
         xticks=[y + 1 for y in range(len(all_data))],
         xticklabels=[
             'Trifasico\nHígado', 'UroTAC', 'Abdomen', 'Dinámico\nPáncreas',
             'Pélvis'
         ])

#fig.savefig('ctdi_abd_levels.svg', format='svg')
plt.show()
because this changes the tick Formatter, which is shared among all
axes.  But you can alter the visibility of the labels, which is a
property

  setp( ax2.get_xticklabels(), visible=False)
"""

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.01, 5, 0.01)
s1 = np.sin(2 * np.pi * t)
s2 = np.exp(-t)
s3 = np.sin(4 * np.pi * t)
ax1 = plt.subplot(311)
plt.plot(t, s1)
plt.setp(ax1.get_xticklabels(), fontsize=6)

# share x only
ax2 = plt.subplot(312, sharex=ax1)
plt.plot(t, s2)
# make these tick labels invisible
plt.setp(ax2.get_xticklabels(), visible=False)

# share x and y
ax3 = plt.subplot(313, sharex=ax1, sharey=ax1)
plt.plot(t, s3)
plt.xlim(0.01, 5.0)
plt.show()
Beispiel #54
0
def pandas_candlestick_ohlc(dat, stick="day", otherseries=None):
    """
    :param dat: pandas DataFrame object with datetime64 index, and float columns "Open", "High", "Low", and "Close", likely created via DataReader from "yahoo"
    :param stick: A string or number indicating the period of time covered by a single candlestick. Valid string inputs include "day", "week", "month", and "year", ("day" default), and any numeric input indicates the number of trading days included in a period
    :param otherseries: An iterable that will be coerced into a list, containing the columns of dat that hold other series to be plotted as lines
 
    This will show a Japanese candlestick plot for stock data stored in dat, also plotting other series if passed.
    """
    mondays = WeekdayLocator(MONDAY)  # major ticks on the mondays
    alldays = DayLocator()  # minor ticks on the days
    dayFormatter = DateFormatter('%d')  # e.g., 12

    # Create a new DataFrame which includes OHLC data for each period specified by stick input
    transdat = dat.loc[:, ["Open", "High", "Low", "Close"]]
    if (type(stick) == str):
        if stick == "day":
            plotdat = transdat
            stick = 1  # Used for plotting
        elif stick in ["week", "month", "year"]:
            if stick == "week":
                transdat["week"] = pd.to_datetime(transdat.index).map(
                    lambda x: x.isocalendar()[1])  # Identify weeks
            elif stick == "month":
                transdat["month"] = pd.to_datetime(transdat.index).map(
                    lambda x: x.month)  # Identify months
            transdat["year"] = pd.to_datetime(transdat.index).map(
                lambda x: x.isocalendar()[0])  # Identify years
            grouped = transdat.groupby(list(set(
                ["year",
                 stick])))  # Group by year and other appropriate variable
            plotdat = pd.DataFrame({
                "Open": [],
                "High": [],
                "Low": [],
                "Close": []
            })  # Create empty data frame containing what will be plotted
            for name, group in grouped:
                plotdat = plotdat.append(
                    pd.DataFrame(
                        {
                            "Open": group.iloc[0, 0],
                            "High": max(group.High),
                            "Low": min(group.Low),
                            "Close": group.iloc[-1, 3]
                        },
                        index=[group.index[0]]))
            if stick == "week": stick = 5
            elif stick == "month": stick = 30
            elif stick == "year": stick = 365

    elif (type(stick) == int and stick >= 1):
        transdat["stick"] = [
            np.floor(i / stick) for i in range(len(transdat.index))
        ]
        grouped = transdat.groupby("stick")
        plotdat = pd.DataFrame({
            "Open": [],
            "High": [],
            "Low": [],
            "Close": []
        })  # Create empty data frame containing what will be plotted
        for name, group in grouped:
            plotdat = plotdat.append(
                pd.DataFrame(
                    {
                        "Open": group.iloc[0, 0],
                        "High": max(group.High),
                        "Low": min(group.Low),
                        "Close": group.iloc[-1, 3]
                    },
                    index=[group.index[0]]))

    else:
        raise ValueError(
            'Valid inputs to argument "stick" include the strings "day", "week", "month", "year", or a positive integer'
        )

    # Set plot parameters, including the axis object ax used for plotting
    fig, ax = plt.subplots()
    fig.subplots_adjust(bottom=0.2)
    if plotdat.index[-1] - plotdat.index[0] < pd.Timedelta('730 days'):
        weekFormatter = DateFormatter('%b %d')  # e.g., Jan 12
        ax.xaxis.set_major_locator(mondays)
        ax.xaxis.set_minor_locator(alldays)
    else:
        weekFormatter = DateFormatter('%b %d, %Y')
    ax.xaxis.set_major_formatter(weekFormatter)

    ax.grid(True)

    # Create the candelstick chart
    candlestick_ohlc(ax,
                     list(
                         zip(list(date2num(plotdat.index.tolist())),
                             plotdat["Open"].tolist(),
                             plotdat["High"].tolist(), plotdat["Low"].tolist(),
                             plotdat["Close"].tolist())),
                     colorup="black",
                     colordown="red",
                     width=stick * .4)

    # Plot other series (such as moving averages) as lines
    if otherseries != None:
        if type(otherseries) != list:
            otherseries = [otherseries]
        dat.loc[:, otherseries].plot(ax=ax, lw=1.3, grid=True)

    ax.xaxis_date()
    ax.autoscale_view()
    plt.setp(plt.gca().get_xticklabels(),
             rotation=45,
             horizontalalignment='right')

    plt.show()
Beispiel #55
0
def candlestick_plot(df,
                     smas=[100, 50, 5, 10],
                     style=style,
                     figsize=(18, 10),
                     rsi_setup=dict(period=14),
                     macd_setup=dict(slow=26, fast=12, ema=8),
                     bbands_setup=dict(period=20, multiplier=2),
                     sstoch_setup=dict(period=14, smoothing=3)):
    """ plot candlestick chart """

    fig = plt.figure(figsize=figsize,
                     facecolor=style.face_color)  # 18, 10 for full screen

    # create main axis for charting prices
    ax1 = plt.subplot2grid((10, 4), (0, 0),
                           rowspan=6,
                           colspan=4,
                           axisbg=style.axis_bg_color)

    if 'volume' not in df:
        df['volume'] = np.zeros(len(df))


#   times = pd.date_range('2014-01-01', periods=l, freq='1d')
    df.date = pd.to_datetime(df.date)
    df.date = [mdates.date2num(d) for d in df.date]

    df = df[::-1]

    payload = df[['date', 'open', 'high', 'low', 'close', 'volume']].values
    candlestick_ohlc(ax1,
                     payload,
                     width=0.5,
                     colorup=style.cdl_up_color,
                     colordown=style.cdl_down_color)

    annotate_max(ax1, df)

    ax1.grid(True, alpha=style.grid_alpha, color=style.grid_color)
    plt.ylabel('Stock Price', color=style.label_color)

    # determines number of points to be displayed on x axis
    ax1.xaxis.set_major_locator(mticker.MaxNLocator(50))
    ax1.yaxis.set_major_locator(mticker.MaxNLocator(15))

    # determines format of markers on the xaxis
    ax1.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m-%y'))

    # label color
    ax1.yaxis.label.set_color(style.label_color)

    # tick params color
    ax1.tick_params(axis='y', colors=style.tick_color)

    # spine colors
    ax1.spines['bottom'].set_color(style.spine_color)
    ax1.spines['top'].set_color(style.spine_color)
    ax1.spines['left'].set_color(style.spine_color)
    ax1.spines['right'].set_color(style.spine_color)

    # make the x tick label invisible
    plt.setp(ax1.get_xticklabels(), visible=False)

    # OVERLAY SIMPLE MOVING AVERAGES
    for idx, period in enumerate(smas):
        ax1 = plot_sma(ax1, df, period=period, color=style.sma_colors[idx])

    # OVERLAY BOLLINGER BAND
    ax1 = plot_bollinger_bands(ax1,
                               df,
                               period=bbands_setup['period'],
                               multiplier=bbands_setup['multiplier'])

    # OVERLAY VOLUME
    # it is important to plot volume after the simple moving
    # average to avoid a warning message 'no labelled objects found'
    if 'volume' in df:
        ax1 = plot_volume(ax1, df)

    # show tick params on right axis as well
    ax1.tick_params(labelright=True)

    # RELATIVE STRENGTH INDEX
    ax_rsi = plt.subplot2grid((10, 4), (9, 0),
                              rowspan=1,
                              colspan=4,
                              sharex=ax1,
                              axisbg=style.axis_bg_color)
    plot_rsi(ax_rsi, df, period=rsi_setup['period'])

    # MOVING AVERAGE CONVERGENCE DIVERGENCE
    ax_macd = plt.subplot2grid((10, 4), (8, 0),
                               rowspan=1,
                               colspan=4,
                               sharex=ax1,
                               axisbg=style.axis_bg_color)

    ax_macd = plot_macd(ax_macd,
                        df,
                        slow=macd_setup['slow'],
                        fast=macd_setup['fast'],
                        ema=macd_setup['ema'])

    # SLOW STOCHASTIC
    # create axis for charting prices
    ax_sstoch = plt.subplot2grid((10, 4), (6, 0),
                                 rowspan=2,
                                 colspan=4,
                                 sharex=ax1,
                                 axisbg=style.axis_bg_color)

    ax_sstoch = plot_slow_stochastic(ax_sstoch,
                                     df,
                                     period=sstoch_setup['period'],
                                     smoothing=sstoch_setup['smoothing'])

    #
    # ema_fast, ema_slow, macd = moving_average_convergence_divergence(df.close)
    # ema9 = exponential_moving_average(macd, nema)
    #
    # # plot_macd(ax_macd, df, style=style, slow=macd_setup['slow'], fast=macd_setup['fast'], ema=macd_setup['nema'] )
    # ax3.plot(df.index, macd, linewidth=2, color='lime')
    # ax3.plot(df.index, ema9, linewidth=2, color='hotpink')
    #
    #
    #
    #
    # # FROM HERE
    # # prune the yaxis
    # ax3.yaxis.set_major_locator(mticker.MaxNLocator(nbins=3, prune='lower'))
    #
    # # print text
    # ax3.text(0.015, 0.95, 'MACD 12,26,9', va='top', color='white', transform=ax3.transAxes)
    # # put markers for signal line
    # # following line needs as many stuff as there are markers
    # # hence we have commented this out.
    # # ax_rsi.axes.yaxis.set_ticklabels([30, 70])
    #
    # #ax3.set_yticks([])
    #
    # # provide the yaxis range
    # #ax3.set_ylim(0, 100)
    #
    # # draw horizontal lines
    # # ax3.axhline(70, color=style.rsi_signal_line_color, alpha=style.rsi_signal_line_alpha)
    # # ax3.axhline(50, color=style.rsi_signal_line_color, alpha=style.rsi_signal_line_alpha)
    # #ax3.axhline(0, color='w')
    # # ax3.axhline(30, color=style.rsi_signal_line_color, alpha=style.rsi_signal_line_alpha)
    #
    # # fill color
    # div = macd - ema9
    # ax3.fill_between(df.index, div, 0, facecolor='deepskyblue', edgecolor='w', alpha=0.3)
    #
    # # ax3.fill_between(df.index, rsi_data, 30, where=(rsi_data<=30), facecolor=style.rsi_oversold_color)
    # # label color
    # ax3.yaxis.label.set_color(style.label_color)
    #
    # # spine colors
    # ax3.spines['bottom'].set_color(style.spine_color)
    # ax3.spines['top'].set_color(style.spine_color)
    # ax3.spines['left'].set_color(style.spine_color)
    # ax3.spines['right'].set_color(style.spine_color)
    #
    # # tick params color
    # ax3.tick_params(axis='y', colors='w')
    # ax3.tick_params(axis='x', colors='w')
    #
    # # plot the grids.
    # ax3.grid(True, alpha=style.grid_alpha, color=style.grid_color)
    # plt.ylabel('MACD', color=style.label_color)
    # plt.setp(ax3.get_xticklabels(), visible=False)
    # # Till here

    # make the labels a bit rotated for better visibility
    for label in ax_rsi.xaxis.get_ticklabels():
        label.set_rotation(45)

    # adjust the size of the plot
    #plt.subplots_adjust(left=0.10, bottom=0.19, right=0.93, top=0.95, wspace=0.20, hspace=0.0)
    plt.subplots_adjust(left=0.07,
                        bottom=0.10,
                        right=0.97,
                        top=0.95,
                        wspace=0.20,
                        hspace=0.0)

    # plt.xlabel('Date', color=style.label_color)
    plt.suptitle('Stock Price Chart', color=style.label_color)

    plt.show()
Beispiel #56
0
    for p in players:
        sub = data[data['pid'] == p]
        for j in list(sub.index):
            if sub['state'][j] != 'exploiting' and sub['have_been_nearby'][j]:
                times += [int(np.log(sub['since_nearby'][j] + 1))]
                states += [sub['state'][j]]

df = pd.DataFrame(dict(time=times, state=states))

state_names = ['exploring', 'copying']
x = []
y = dict([(s, []) for s in state_names])

print
print 'states as a function of time'
for val in sorted(list(set(df['time']))):
    states = df[df['time'] == val]['state']
    x += [val]
    for s in state_names:
        y[s] += [np.mean(states == s)]

plt.figure()
plt.rcParams.update(pd.tools.plotting.mpl_stylesheet)
for s in state_names:
    plt.plot(x, y[s], label=s)
plt.xlabel('Log Time Since Last with Group', fontsize=24)
plt.ylabel('Probability Given Not Exploiting', fontsize=24)
pylab.legend(loc='upper left')
plt.setp(plt.gca().get_legend().get_texts(), fontsize='20')
plt.show()
'#d9d9d9',
'#bc80bd',
'#ccebc5',
'#ffed6f']

fig1, ax1 = plt.subplots()
#fig1.patch.set_alpha(0.3)
patches, texts, autotexts = ax1.pie(y_col, explode=None, autopct='%1.1f%%',
shadow=False, startangle=90, colors=cols1)#,labels=x_col)#,labels=x_col)
ax1.axis('equal')
#fig1.set_facecolor('w') #change canvas color
plt.title("Self Signed Certifcates",y=1.05)

#Change font size
proptease = fm.FontProperties()
#proptease.set_size(8)
plt.setp(autotexts, fontproperties=proptease)
plt.setp(texts, fontproperties=proptease)


#Shrink current axis by 20%
#box = ax1.get_position()
#ax1.set_position([box.x0, box.y0, box.width * 0.8, box.height])


#plt.legend(patches, zip(x_col,percent), loc="best",bbox_to_anchor=(0.8, 0.5)) display name and percentage
plt.legend(patches, x_col,loc='best')#,bbox_to_anchor=(0.8, 0.5),prop={'size':8})

#plt.show() # Equal aspect ratio ensures that pie is drawn as a circle.
plt.savefig("SelfSigned.svg")
Beispiel #58
0
    axes[length_data_list[j]].set_yscale('log')

    axes[length_data_list[j]].set_ylabel(
        f'ST-{satellite_no_st} Proton\nFlux [pfu]',
        fontname="Arial",
        fontsize=12)
    applyPlotStyle()

# plt.xlabel('Time [UT]', fontname="Arial", fontsize = 12)

# myFmt = mdates.DateFormatter('%m/%d\n%H:%M')
ax = plt.gca()
# ax.xaxis.set_major_formatter(myFmt)

plt.setp(ax.xaxis.get_majorticklabels(),
         rotation=0,
         horizontalalignment='center')
# plt.suptitle(f'Space Weather Monitor]', fontname="Arial", fontsize = 14) #, y=1.04,
#plt.tight_layout()

plt.subplots_adjust(wspace=0, hspace=0, top=0.91)
plt.savefig('corr_fluence_20180322.png', format='png', dpi=900)

#plt.savefig('omni_test_legacy.png', format='png', dpi=900)
'''
if event_option == 'yes':
	plt.savefig(f'xflare_events/omni_test_{event_date}.png', format='png', dpi=900)

if save_plot_option == 'yes' and len(option_bin_set) <= 4:
	plt.savefig(f'xflare_events/omni_test_{event_date}.png', format='png', dpi=900)
def plotAttribute(cur, planners, attribute, typename):
    """Create a plot for a particular attribute. It will include data for
    all planners that have data for this attribute."""
    labels = []
    measurements = []
    nanCounts = []
    if typename == 'ENUM':
        cur.execute('SELECT description FROM enums where name IS "%s"' %
                    attribute)
        descriptions = [t[0] for t in cur.fetchall()]
        numValues = len(descriptions)
    for planner in planners:
        cur.execute('SELECT %s FROM runs WHERE plannerid = %s AND %s IS NOT NULL' \
            % (attribute, planner[0], attribute))
        measurement = [t[0] for t in cur.fetchall() if t[0] != None]
        if measurement:
            cur.execute('SELECT count(*) FROM runs WHERE plannerid = %s AND %s IS NULL' \
                % (planner[0], attribute))
            nanCounts.append(cur.fetchone()[0])
            labels.append(planner[1])
            if typename == 'ENUM':
                scale = 100. / len(measurement)
                measurements.append(
                    [measurement.count(i) * scale for i in range(numValues)])
            else:
                measurements.append(measurement)

    if not measurements:
        print('Skipping "%s": no available measurements' % attribute)
        return

    plt.clf()
    ax = plt.gca()
    if typename == 'ENUM':
        width = .5
        measurements = np.transpose(np.vstack(measurements))
        colsum = np.sum(measurements, axis=1)
        rows = np.where(colsum != 0)[0]
        heights = np.zeros((1, measurements.shape[1]))
        ind = range(measurements.shape[1])
        for i in rows:
            plt.bar(ind, measurements[i], width, bottom=heights[0], \
                color=matplotlib.cm.hot(int(floor(i * 256 / numValues))), \
                label=descriptions[i])
            heights = heights + measurements[i]
        xtickNames = plt.xticks([x + width / 2. for x in ind],
                                labels,
                                rotation=30)
        ax.set_ylabel(attribute.replace('_', ' ') + ' (%)')
        box = ax.get_position()
        ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
        props = matplotlib.font_manager.FontProperties()
        props.set_size('small')
        ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop=props)
    elif typename == 'BOOLEAN':
        width = .5
        measurementsPercentage = [sum(m) * 100. / len(m) for m in measurements]
        ind = range(len(measurements))
        plt.bar(ind, measurementsPercentage, width)
        xtickNames = plt.xticks([x + width / 2. for x in ind],
                                labels,
                                rotation=30)
        ax.set_ylabel(attribute.replace('_', ' ') + ' (%)')
    else:
        if int(matplotlibversion.split('.')[0]) < 1:
            plt.boxplot(measurements, notch=0, sym='k+', vert=1, whis=1.5)
        else:
            plt.boxplot(measurements,
                        notch=0,
                        sym='k+',
                        vert=1,
                        whis=1.5,
                        bootstrap=1000)
        ax.set_ylabel(attribute.replace('_', ' '))
        xtickNames = plt.setp(ax, xticklabels=labels)
        plt.setp(xtickNames, rotation=25)
    ax.set_xlabel('Motion planning algorithm')
    ax.yaxis.grid(True,
                  linestyle='-',
                  which='major',
                  color='lightgrey',
                  alpha=0.5)
    if max(nanCounts) > 0:
        maxy = max([max(y) for y in measurements])
        for i in range(len(labels)):
            x = i + width / 2 if typename == 'BOOLEAN' else i + 1
            ax.text(x,
                    .95 * maxy,
                    str(nanCounts[i]),
                    horizontalalignment='center',
                    size='small')
    plt.show()
Beispiel #60
0
def demo_simple_image(ax):
    Z, extent = get_demo_image()

    im = ax.imshow(Z, extent=extent, interpolation="nearest")
    cb = plt.colorbar(im)
    plt.setp(cb.ax.get_yticklabels(), visible=False)