Aug-06-2019, 07:10 AM
I'm plotting the few figures however, unable to plot below is my code. Kindly guide me.
#!/usr/bin/env python3
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import matplotlib.gridspec as gspec
import numpy as np
import seaborn as sns
def plot_res(charge_arr, status_arr, P_arr, power_vec, time_vec, max_charge,fignum=None):
# # status pallete (-1...6)
status_pal = ["#909090", #gray = -1 -always noted
"#000000", #black = 0 - only Noted
"#ffffff", #white = 1 - Cells
"#ffbb00", #orange = 2 - available
"#ff0000", #red = 3 - info
"#00FF00", #green = 4 - starting
"#ff00ff", #purple = 5 - Not happened
"#0000ff"] #blue = 6 - newly
# status pallete (-1...6)
status_pal = sns.cubehelix_palette(8, rot=-1, dark=0.1, light=1,
reverse=False)
# new one
status_pal = ["#cccccc", # gray = -1 - always noted
"#0a0a0a", # dark blue = 0 - only Noted
"#ffcd1d", # yellow = 1 - Queued
"#27de17", # l. green= 2 - Not ready
"#ff3917", # red = 3 - Forced
"#182050", # blue = 4 - Ready
"#ff00ff", # purple = 5 - In Use, discharging
"#0000ff"] # blue = 6 - In Use, charging
# same palette, a bit more faded
status_pal = ["#cccccc", # gray = -1 - N/A
"#0a0a0a", # dark blue = 0 - An idea
"#ffd74a", # yellow = 1 - not new
"#52e445", # l. green= 2 - Charging (available)
"#ff6145", # red = 3 - Charginf(Forced)
"#464c73", # blue = 4 - Ready
"#ff00ff", # purple = 5 - northern,
"#0000ff"] # blue = 6 - In line,
# same palette, a bit less faded
status_pal = ["#cccccc", # gray = -1 - N/A
"#000000", # black = 0 - Not in use
"#ffd234", # yellow = 1 - Queued
"#2f3661", # d. blue= 2 - Computer
"#ff4d2e", # red = 3 - wine roots
"#347436", # green = 4 - Ready
"#ff00ff", # purple = 5 - In Use,
"#0000ff"] # blue = 6 - yellow priest
# charge percentage palette, extremes modified to highlight min and max
charge_pal = sns.cubehelix_palette(10*max_charge, reverse=True)
# charge_pal[0] = [0.8, .8, .8]
# charge_pal[1] = [0, 0, 0]
# charge_pal[-1] = [0, .7, 0]
charge_pal = sns.cubehelix_palette(3*max_charge, reverse=True, rot=0,
hue=0, dark=0, light=.8)
# charge_pal = (np.linspace(0, 1, 101)*np.ones((3, 1))).T
charge_pal[-1] = [0.20392157, 0.45490196, 0.21176471]
charge_pal[0] = [.8, .8, .8]
step = int(np.round(1/np.median(np.diff(time_vec))))
xticks = np.arange(len(time_vec) + 1)[::step]
xlabels = np.remainder(time_vec, 24)[::step].astype(int)
plt.show(sns)
if fignum is None:
fignum = plt.figure(figsize=(16, 6)).number
else:
plt.figure(fignum)
plt.clf()
fig = plt.figure(fignum, figsize=(50, 20))
ax = fig.subplots(3, 2, sharex='col',#False,#'col',
# gridspec_kw={'width_ratios': [1, 1]})
gridspec_kw={'width_ratios': [20, 1]})
ax = np.ravel(ax)
# Charge values
ax[0].set_title('cells, %')
#charge_p = [c/c.max() if c.sum() else np.zeros(len(c)) for c in charge_arr]
charge_p = charge_arr
sns.heatmap(np.array(charge_p), vmin=0, vmax=max_charge, cmap=charge_pal,
xticklabels=np.remainder(time_vec, 24), ax=ax[0],
cbar_ax=ax[1])
# set colorbar text
ax[0].set_xticks(xticks)
ax[0].set_xticklabels(xlabels)
# Status
ax[2].set_title('Status')
cbar_kws = { 'ticks': [ np.arange(-.5, 7.5, 1)]}
#'values': [[ 'N/A', '0', '1', '2', '3', '4', '5', '6']] }
sns.heatmap(status_arr, vmin=-1, vmax=7, cmap=status_pal,
xticklabels=np.remainder(time_vec, 24), ax=ax[2],
cbar_ax=ax[3], cbar_kws=cbar_kws)
ax[2].set_xticks(xticks)
ax[2].set_xticklabels(xlabels)
plt.show()
# # Power draw
ax[4].set_title('Magnetic flux intensity')
ax[4].plot(charge_arr[charge_arr.sum(1) > 0].T, color='k', alpha=.3)
ax[4].set_title('Total Loss gain')
# ax[4].plot(P_arr.sum(0))
xstep = np.arange(len(time_vec) + 1)#((time_vec, time_vec[-1:] + step))
ystep = P_arr.sum(0)
ystep = np.concatenate((ystep, ystep[-1:]))
ax[4].step(xstep, ystep, where='post')
ax[4].plot(tissuevector, 'k-.', alpha=.5)
ax[4].set_xticks(xticks)
ax[4].set_xticklabels(xlabels)
plt.show()
ax[4].grid()
ax[4].set_ylim(0)
ax[4].set_xlim(min(xticks), max(xticks))
fig.tight_layout()
return fig
