def renderGraph(self): # pylint: disable=R0914 assert len(self._oData.aoSeries) == 1 oSeries = self._oData.aoSeries[0] # hacking #self.setWidth(512); #self.setHeight(128); # end oFigure = self._createFigure() from mpl_toolkits.axes_grid.axislines import SubplotZero # pylint: disable=E0401 oAxis = SubplotZero(oFigure, 111) oFigure.add_subplot(oAxis) # Disable all the normal axis. oAxis.axis['right'].set_visible(False) oAxis.axis['top'].set_visible(False) oAxis.axis['bottom'].set_visible(False) oAxis.axis['left'].set_visible(False) # Use the zero axis instead. oAxis.axis['yzero'].set_axisline_style('-|>') oAxis.axis['yzero'].set_visible(True) oAxis.axis['xzero'].set_axisline_style('-|>') oAxis.axis['xzero'].set_visible(True) if oSeries.aoYValues[-1] == 100: sColor = 'green' elif oSeries.aoYValues[-1] > 75: sColor = 'yellow' else: sColor = 'red' oAxis.plot(oSeries.aoXValues, oSeries.aoYValues, '.-', color=sColor, linewidth=3) oAxis.fill_between(oSeries.aoXValues, oSeries.aoYValues, facecolor=sColor, alpha=0.5) oAxis.set_xlim(left=-0.01) oAxis.set_xticklabels([]) oAxis.set_xmargin(1) oAxis.set_ylim(bottom=0, top=100) oAxis.set_yticks([0, 50, 100]) oAxis.set_ylabel('%') #oAxis.set_yticklabels([]); oAxis.set_yticklabels(['', '%', '']) return self._produceSvg(oFigure, False)
def make_plot_ax(): fig = figure(figsize=(6, 5)); ax = SubplotZero(fig, 111); fig.add_subplot(ax) for direction in ["xzero", "yzero"]: ax.axis[direction].set_axisline_style("-|>") ax.axis[direction].set_visible(True) for direction in ["left", "right", "bottom", "top"]: ax.axis[direction].set_visible(False) xlim(-0.1, 2.1); ylim(xlim()) ticks = [0.5 * i for i in range(1, 5)] labels = [str(i) if i == int(i) else "" for i in ticks] ax.set_xticks(ticks); ax.set_yticks(ticks) ax.set_xticklabels(labels); ax.set_yticklabels(labels) ax.axis["yzero"].set_axis_direction("left") return ax
def renderGraph(self): # pylint: disable=R0914 assert len(self._oData.aoSeries) == 1 oSeries = self._oData.aoSeries[0] # hacking # self.setWidth(512); # self.setHeight(128); # end oFigure = self._createFigure() from mpl_toolkits.axes_grid.axislines import SubplotZero # pylint: disable=E0401 oAxis = SubplotZero(oFigure, 111) oFigure.add_subplot(oAxis) # Disable all the normal axis. oAxis.axis["right"].set_visible(False) oAxis.axis["top"].set_visible(False) oAxis.axis["bottom"].set_visible(False) oAxis.axis["left"].set_visible(False) # Use the zero axis instead. oAxis.axis["yzero"].set_axisline_style("-|>") oAxis.axis["yzero"].set_visible(True) oAxis.axis["xzero"].set_axisline_style("-|>") oAxis.axis["xzero"].set_visible(True) if oSeries.aoYValues[-1] == 100: sColor = "green" elif oSeries.aoYValues[-1] > 75: sColor = "yellow" else: sColor = "red" oAxis.plot(oSeries.aoXValues, oSeries.aoYValues, ".-", color=sColor, linewidth=3) oAxis.fill_between(oSeries.aoXValues, oSeries.aoYValues, facecolor=sColor, alpha=0.5) oAxis.set_xlim(left=-0.01) oAxis.set_xticklabels([]) oAxis.set_xmargin(1) oAxis.set_ylim(bottom=0, top=100) oAxis.set_yticks([0, 50, 100]) oAxis.set_ylabel("%") # oAxis.set_yticklabels([]); oAxis.set_yticklabels(["", "%", ""]) return self._produceSvg(oFigure, False)
def renderGraph(self): # pylint: disable=R0914 assert len(self._oData.aoSeries) == 1; oSeries = self._oData.aoSeries[0]; # hacking #self.setWidth(512); #self.setHeight(128); # end oFigure = self._createFigure(); from mpl_toolkits.axes_grid.axislines import SubplotZero; oAxis = SubplotZero(oFigure, 111); oFigure.add_subplot(oAxis); # Disable all the normal axis. oAxis.axis['right'].set_visible(False) oAxis.axis['top'].set_visible(False) oAxis.axis['bottom'].set_visible(False) oAxis.axis['left'].set_visible(False) # Use the zero axis instead. oAxis.axis['yzero'].set_axisline_style('-|>'); oAxis.axis['yzero'].set_visible(True); oAxis.axis['xzero'].set_axisline_style('-|>'); oAxis.axis['xzero'].set_visible(True); if oSeries.aoYValues[-1] == 100: sColor = 'green'; elif oSeries.aoYValues[-1] > 75: sColor = 'yellow'; else: sColor = 'red'; oAxis.plot(oSeries.aoXValues, oSeries.aoYValues, '.-', color = sColor, linewidth = 3); oAxis.fill_between(oSeries.aoXValues, oSeries.aoYValues, facecolor = sColor, alpha = 0.5) oAxis.set_xlim(left = -0.01); oAxis.set_xticklabels([]); oAxis.set_xmargin(1); oAxis.set_ylim(bottom = 0, top = 100); oAxis.set_yticks([0, 50, 100]); oAxis.set_ylabel('%'); #oAxis.set_yticklabels([]); oAxis.set_yticklabels(['', '%', '']); return self._produceSvg(oFigure, False);
def make_plot_ax(): fig = figure(figsize=(6, 5)) ax = SubplotZero(fig, 111) fig.add_subplot(ax) for direction in ["xzero", "yzero"]: ax.axis[direction].set_axisline_style("-|>") ax.axis[direction].set_visible(True) for direction in ["left", "right", "bottom", "top"]: ax.axis[direction].set_visible(False) xlim(-0.1, 2.1) ylim(xlim()) ticks = [0.5 * i for i in range(1, 5)] labels = [str(i) if i == int(i) else "" for i in ticks] ax.set_xticks(ticks) ax.set_yticks(ticks) ax.set_xticklabels(labels) ax.set_yticklabels(labels) ax.axis["yzero"].set_axis_direction("left") return ax
n = 12 # 引く包絡線の数 a_min = -10 # 表示させるaの最小値 a_max = 10 # 表示させるaの最大値 y_min = -6 # 表示させるbの最小値(最大値はa軸とb軸の縮尺が1:1になるよう自動で決まる) # アスペクト比を定めただけだと異常に縦長なグラフが出てくるのでylimを定めた y_max = y_min+a_max-a_min # これは変数ではない plt.figtext(0.85, 0.35, '$a$') # 直接位置を指定しているので、グラフの位置を変えるときにこれも変える plt.figtext(0.5, 0.95, '$b$') # ここより上に変数が入る fig = plt.figure(1) ax = SubplotZero(fig, 111) fig.add_subplot(ax) ax.axhline(linewidth=1.0, color="black") ax.axvline(linewidth=1.0, color="black") ax.set_xticks([]) # 空のlistを指定することでticksが入らない ax.set_yticks([]) ax.set(aspect=1) for direction in ["xzero", "yzero"]: ax.axis[direction].set_axisline_style("-|>") ax.axis[direction].set_visible(True) plt.ylim(ymin=y_min) # この位置より前に置くとx方向が狭くなってしまった plt.ylim(ymax=y_max) a = linspace(a_min, a_max, (a_max-a_min) * 10) # 点の数はaの動く範囲の長さ×10,これで曲線にも対応する # linspaceの点の数に小数が来ることがあり得るのですが、その場合は勝手に小数点以下を切り捨てた数の点をとってくれるようです for i in range(n): r = p+(q-p)*i/(n-1) # n個の接線を引き2個は両端にあるので区間はn-1等分される b = f(r, a) ax.plot(a, b, 'k', linewidth=0.5, alpha=1) # linewidth:線の太さ, alpha:濃さ(1以下), 黒色の線は'k' plt.show() # plt.savefig('envelopeX.png', bbox_inches='tight', pad_inches=0)