from __future__ import division #import matplotlib.pyplot as plt from plt import * import numpy as np from numpy import pi def gen(hour=None): staticmode=False mult=1.0 my_dpi=96*mult siz=768 fig=plt.figure(figsize=(siz/my_dpi,siz/my_dpi),dpi=my_dpi) fig.patch.set_facecolor("white") angles = 2*pi*np.random.randint(0,864000,100)/86400 ax = plt.subplot(111, polar=True) #ax.set_facecolor("white") #ax.figure(figsize=(10,10)) #plt.polar() #ax.scatter(angles, np.ones(100)*1) #ax.bar(angles, np.full(100, 0.9), width=0.1, bottom=0.0, color='r', linewidth=0) #ax.bar(angles, np.full(100, 0.9), width=0.05, bottom=0.89, color='r', linewidth=0) ax.grid(b=False) alpha=pi/6 def ophase(x,y,c):ax.plot([x*alpha,y*alpha],[8,8],color=c) ophase(0,3,"red") ophase(3,8.5,"blue") ophase(8.5,10.5,"yellow") ophase(10.5,12,"green") ax.text(2.8*alpha,0.4,"Datasets",{"size":18,"color":"red"},rotation=0) ax.text(6.5*alpha,0.5,"Algorithms",{"size":18,"color":"blue"},rotation=8) ax.text(8.6*alpha,0.8,"Analysis",{"size":18,"color":"yellow"},rotation=15) ax.text(10.7*alpha,0.8,"Application",{"size":18,"color":"green"},rotation=20) labels=["Video Data","Text Data","Graph Data","High dim Data","Density OD","Subspace preprocessing","Transformations","Ensembles","Active AD","Explainability","Interpretation","Device Failure"] # suppress the radial labels plt.setp(ax.get_yticklabels(), visible=False) # set the circumference labels if staticmode: ax.set_xticks(np.linspace(0, 2*pi, 12, endpoint=False)) ax.set_xticklabels([12,1,2,3,4,5,6,7,8,9,10,11]) ax.set_xticklabels(labels) else: ax.set_xticks([]) data=[ [1.04,0.16], [0.91,0.08], [0.88,-0.05], [1.03,-0.17], [1.05,-0.20], [1.11,-0.30], [1.10,-0.20], [1.20,-0.10], [1.20,0.05], [1.10,0.14], [1.10,0.19], [1.07,0.22], ] radii=[d[0] for d in data] deltap=[d[1] for d in data] for i,(lab,rad,dp) in enumerate(zip(labels,radii,deltap)): theta=alpha*i theta90=theta*180/pi ax.text(theta-dp,rad,lab,{"size":13,"color":"black"},rotation=-theta90) def line(hour): plt.plot([hour*alpha,hour*alpha],[0.0,1.0],color="black") def sline(hour): plt.plot([hour*alpha,hour*alpha],[1.00,1.0],color="black") if not hour is None: line(hour) for i in range(12): sline(i) try: mplcyberpunk.add_underglow() mplcyberpunk.add_glow_effects() except:pass plt.plot([7*alpha,8*alpha],[1.0,1.0],color="blue") # make the labels go clockwise ax.set_theta_direction(-1) # place 0 at the top ax.set_theta_offset(pi/2.0) # plt.grid('off') # put the points on the circumference plt.ylim(0,1) #plt.show() if hour is None: plt.savefig(f"output.png",facecolor="white",format="png") plt.savefig(f"output.pdf",facecolor="white",format="pdf") else: plt.savefig(f"output{hour}.png",facecolor="white",format="png") plt.savefig(f"output{hour}.pdf",facecolor="white",format="pdf") try: plt.how() except: plt.show() gen() for i in range(1,13): gen(i)