Fix zorder issue with collections.
This commit is contained in:
parent
2bf2d7d359
commit
6595ffd2ab
@ -157,16 +157,15 @@ def main():
|
|||||||
figure.set_tight_layout({'pad':3})
|
figure.set_tight_layout({'pad':3})
|
||||||
|
|
||||||
''' Draw the target range '''
|
''' Draw the target range '''
|
||||||
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.1, zorder=5)
|
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.1, zorder=15)
|
||||||
|
|
||||||
''' The maxmin curve (maximum and minimum values for each 15 minute
|
''' The maxmin fill (maximum and minimum values for each 15 minute
|
||||||
period of the data set, by day) '''
|
period of the data set, by day) '''
|
||||||
generate_plot(intervaldata,
|
generate_plot(intervaldata,
|
||||||
ax=ax,
|
ax=ax,
|
||||||
transforms={'spline':False, 'maxmin':True},
|
transforms={'spline':True, 'maxmin':True},
|
||||||
args=args,
|
args=args,
|
||||||
color='#979797',
|
color='#979797',
|
||||||
alpha=0.5,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
''' The graph with a bezier curve applied, and a boundary transform to change line colour
|
''' The graph with a bezier curve applied, and a boundary transform to change line colour
|
||||||
@ -234,15 +233,14 @@ def main():
|
|||||||
figure.set_tight_layout({'pad':3})
|
figure.set_tight_layout({'pad':3})
|
||||||
|
|
||||||
''' Draw the target range '''
|
''' Draw the target range '''
|
||||||
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.1, zorder=5)
|
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.1, zorder=15)
|
||||||
|
|
||||||
''' The maxmined curve of maximum and minimum values '''
|
''' The maxmin fill of maximum and minimum values '''
|
||||||
generate_plot(intervaldata,
|
generate_plot(intervaldata,
|
||||||
ax=ax,
|
ax=ax,
|
||||||
transforms={'spline':False, 'maxmin':True, 'avga1c':a_median},
|
transforms={'spline':True, 'maxmin':True, 'avga1c':a_median},
|
||||||
args=args,
|
args=args,
|
||||||
color='#979797',
|
color='#979797',
|
||||||
alpha=0.5,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
''' The graph with a bezier curve applied, and a boundary transform to change line colour
|
''' The graph with a bezier curve applied, and a boundary transform to change line colour
|
||||||
@ -288,7 +286,7 @@ def main():
|
|||||||
figure.set_tight_layout({'pad':3})
|
figure.set_tight_layout({'pad':3})
|
||||||
|
|
||||||
''' Draw the target range '''
|
''' Draw the target range '''
|
||||||
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.2, zorder=5)
|
ax.axhspan(args.low, args.high, facecolor='#0072b2', edgecolor='#a8a8a8', alpha=0.2, zorder=15)
|
||||||
|
|
||||||
''' Draw graph with a spline tranform and labels '''
|
''' Draw graph with a spline tranform and labels '''
|
||||||
generate_plot(data,
|
generate_plot(data,
|
||||||
@ -358,7 +356,7 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
''' Formatting for axis labels, using date calculations from above '''
|
''' Formatting for axis labels, using date calculations from above '''
|
||||||
ax.set_xlabel('Time', fontsize=9)
|
ax.set_xlabel('Time', fontsize=9)
|
||||||
ax.set_xbound(firstminute, lastminute)
|
ax.set_xbound(firstminute, lastminute)
|
||||||
ax.grid(axis='x', color = '#f0f0f0', zorder=1)
|
ax.grid(axis='x', color = '#f0f0f0', zorder=5)
|
||||||
ax.set_xticks(xtimes)
|
ax.set_xticks(xtimes)
|
||||||
ax.xaxis.set_major_formatter(mdates.DateFormatter("%H:%M"))
|
ax.xaxis.set_major_formatter(mdates.DateFormatter("%H:%M"))
|
||||||
ax.xaxis.set_ticks_position('none')
|
ax.xaxis.set_ticks_position('none')
|
||||||
@ -367,7 +365,7 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
|
|
||||||
ax.set_ylabel('Blood Glucose (' + args.units + ')', fontsize=9)
|
ax.set_ylabel('Blood Glucose (' + args.units + ')', fontsize=9)
|
||||||
ax.set_ybound(args.graph_min, args.graph_max)
|
ax.set_ybound(args.graph_min, args.graph_max)
|
||||||
ax.grid(axis='y', color = '#d0d0d0', linestyle = (1,(0.5,2)), zorder=1)
|
ax.grid(axis='y', color = '#d0d0d0', linestyle = (1,(0.5,2)), zorder=5)
|
||||||
ax.set_yticks([a for a in range(int(args.graph_min), int(args.graph_max), int(y_tick_freq))])
|
ax.set_yticks([a for a in range(int(args.graph_min), int(args.graph_max), int(y_tick_freq))])
|
||||||
ax.yaxis.set_major_formatter(mticker.FormatStrFormatter("%d"))
|
ax.yaxis.set_major_formatter(mticker.FormatStrFormatter("%d"))
|
||||||
ax.yaxis.set_ticks_position('none')
|
ax.yaxis.set_ticks_position('none')
|
||||||
@ -430,13 +428,13 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
|
|
||||||
ax.annotate(gmtext, fontsize=9, xy=(0.95, 0.85),
|
ax.annotate(gmtext, fontsize=9, xy=(0.95, 0.85),
|
||||||
xycoords='axes fraction', verticalalignment='top', horizontalalignment='right',
|
xycoords='axes fraction', verticalalignment='top', horizontalalignment='right',
|
||||||
zorder=40, bbox=dict(facecolor=GREEN, edgecolor='#009e73', alpha=0.7, pad=8),
|
zorder=60, bbox=dict(facecolor=GREEN, edgecolor='#009e73', alpha=0.7, pad=8),
|
||||||
)
|
)
|
||||||
if transform == 'avga1c' and isinstance(transforms.get(transform), (int, float)):
|
if transform == 'avga1c' and isinstance(transforms.get(transform), (int, float)):
|
||||||
ax.annotate('Median HbA1c: %.1f%%' % round(transforms.get('avga1c'), 1), fontsize=9,
|
ax.annotate('Median HbA1c: %.1f%%' % round(transforms.get('avga1c'), 1), fontsize=9,
|
||||||
xy=(0.05, 0.85), xycoords='axes fraction',
|
xy=(0.05, 0.85), xycoords='axes fraction',
|
||||||
verticalalignment='top', horizontalalignment='left',
|
verticalalignment='top', horizontalalignment='left',
|
||||||
zorder=40, bbox=dict(facecolor=BOXYELLOW, edgecolor='#e69f00', alpha=0.7, pad=8),
|
zorder=60, bbox=dict(facecolor=BOXYELLOW, edgecolor='#e69f00', alpha=0.7, pad=8),
|
||||||
)
|
)
|
||||||
|
|
||||||
if args.units == UNIT_MMOLL:
|
if args.units == UNIT_MMOLL:
|
||||||
@ -465,7 +463,7 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
symbol += '\N{GREEN APPLE}'
|
symbol += '\N{GREEN APPLE}'
|
||||||
symbol += '$'
|
symbol += '$'
|
||||||
ax.annotate(symbol, xy=(x_pos, args.graph_max-y_offset),
|
ax.annotate(symbol, xy=(x_pos, args.graph_max-y_offset),
|
||||||
rotation=45, zorder=25, fontsize=10,
|
rotation=45, zorder=40, fontsize=10,
|
||||||
fontproperties=args.customfont,
|
fontproperties=args.customfont,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -477,7 +475,7 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
p = np.array([x, y]).T.reshape(-1, 1, 2)
|
p = np.array([x, y]).T.reshape(-1, 1, 2)
|
||||||
segments = np.concatenate([p[:-1], p[1:]], axis=1)
|
segments = np.concatenate([p[:-1], p[1:]], axis=1)
|
||||||
''' Colour the line according to the values in norm and the colours in cmap '''
|
''' Colour the line according to the values in norm and the colours in cmap '''
|
||||||
lc = LineCollection(segments, cmap=cmap, norm=norm)
|
lc = LineCollection(segments, cmap=cmap, norm=norm, alpha=1, zorder=30)
|
||||||
lc.set_array(y)
|
lc.set_array(y)
|
||||||
|
|
||||||
|
|
||||||
@ -486,16 +484,16 @@ def generate_plot(data, ax=None, transforms={}, args=[], **plot_args):
|
|||||||
|
|
||||||
elif 'fill' in transforms and transforms.get('fill') is True:
|
elif 'fill' in transforms and transforms.get('fill') is True:
|
||||||
z = np.clip(y, None, args.high)
|
z = np.clip(y, None, args.high)
|
||||||
ax.fill_between(x, y, z, interpolate=True, facecolor=YELLOW, alpha=0.7, zorder=12, **plot_args)
|
ax.fill_between(x, y, z, interpolate=True, facecolor=YELLOW, alpha=0.7, zorder=20, **plot_args)
|
||||||
|
|
||||||
z = np.clip(y, args.low, None)
|
z = np.clip(y, args.low, None)
|
||||||
ax.fill_between(x, y, z, interpolate=True, facecolor=RED, alpha=0.7, zorder=12, **plot_args)
|
ax.fill_between(x, y, z, interpolate=True, facecolor=RED, alpha=0.7, zorder=20, **plot_args)
|
||||||
|
|
||||||
elif maxmin:
|
elif maxmin:
|
||||||
ax.fill_between(x, y, z, interpolate=True, zorder=10, **plot_args)
|
ax.fill_between(x, y, z, interpolate=True, alpha=0.5, zorder=10, **plot_args)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
ax.plot(x, y, '-', zorder=20, **plot_args)
|
ax.plot(x, y, '-', alpha=1, zorder=30, **plot_args)
|
||||||
|
|
||||||
return ax
|
return ax
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user