def plotICDFDimensionsInactivityThreshold(self, returnAxisValuesOnly=True): ''' Plot P(in_actiivty > threshold timeunit) Find time unit at which probability is low. Experts stream 0.25 129 Houston stream 0.25 144 ''' dataX, dataY, total = set(), defaultdict(list), [] for line in list( FileIO.iterateJsonFromFile(self.dimensionInActivityTimeFile)): data = dict((int(k), v) for k, v in line[ ParameterEstimation.dimensionInActivityTimeId].iteritems()) total.append(sum(data.values())) for i in data: dataY[i].append(data[i]) dataX.add(i) totalInstancesObserved = float(sum(total)) x = sorted(dataX) y = getInverseCumulativeDistribution( [sum(dataY[k]) / totalInstancesObserved for k in x]) plt.plot(x, y, label=getLatexForString(self.stream_settings['plot_label']), color=self.stream_settings['plot_color'], lw=2) plt.ylabel( r'$P\ (\ inactivity\ duration\ \geq\ \ inactivity\ duration\ threshold )$' ), plt.xlabel( getLatexForString('Inactivity duration threshold')), plt.title( getLatexForString('Inactivity analysis for dimensions.')) plt.legend() if returnAxisValuesOnly: plt.show()
def plotICDFDimensionsInactivityThreshold(self, returnAxisValuesOnly=True): ''' Plot P(in_actiivty > threshold timeunit) Find time unit at which probability is low. Experts stream 0.25 129 Houston stream 0.25 144 ''' dataX, dataY, total = set(), defaultdict(list), [] for line in list(FileIO.iterateJsonFromFile(self.dimensionInActivityTimeFile)): data = dict((int(k), v) for k,v in line[ParameterEstimation.dimensionInActivityTimeId].iteritems()) total.append(sum(data.values())) for i in data: dataY[i].append(data[i]); dataX.add(i) totalInstancesObserved=float(sum(total)) x = sorted(dataX) y = getInverseCumulativeDistribution([sum(dataY[k])/totalInstancesObserved for k in x]) plt.plot(x, y, label=getLatexForString(self.stream_settings['plot_label']), color=self.stream_settings['plot_color'], lw=2) plt.ylabel(r'$P\ (\ inactivity\ duration\ \geq\ \ inactivity\ duration\ threshold )$'), plt.xlabel(getLatexForString('Inactivity duration threshold')), plt.title(getLatexForString('Inactivity analysis for dimensions.')) plt.legend() if returnAxisValuesOnly: plt.show()
def plotICDFClustersLagDistribution(self, returnAxisValuesOnly=True): ''' Experts stream 0.25 199 Houston stream 0.25 152 ''' self.stream_settings['%s_file' % ClusteringParametersEstimation.clusterLagDistributionId] = self.stream_settings['parameter_estimation_folder'] + ClusteringParametersEstimation.clusterLagDistributionId dataX, dataY, total = set(), defaultdict(list), [] for line in list(FileIO.iterateJsonFromFile(self.stream_settings['%s_file' % ClusteringParametersEstimation.clusterLagDistributionId])): print line.keys() data = dict((int(k), v) for k,v in line[ClusteringParametersEstimation.clusterLagDistributionId].iteritems()) total.append(sum(data.values())) for i in data: dataY[i].append(data[i]); dataX.add(i) totalInstancesObserved=float(sum(total)) x = sorted(dataX) y = getInverseCumulativeDistribution([sum(dataY[k])/totalInstancesObserved for k in x]) plt.plot(x, y, label=getLatexForString(self.stream_settings['plot_label']), color=self.stream_settings['plot_color'], lw=2) if self.stream_settings['plot_label']=='Houston stream': plt.plot([0,x[-1]], [1, 0], '--', color='#5AF522', lw=2) plt.ylabel(r'$P\ (\ inactivity\ duration\ \geq\ \ inactivity\ duration\ threshold )$'), plt.xlabel(getLatexForString('Inactivity duration threshold')), plt.title(getLatexForString('Inactivity analysis for crowds.')) plt.legend() if returnAxisValuesOnly: plt.show()