Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
from numpy.random import uniform, seed
import numpy as np
import gr
seed(0)
xd = uniform(-2, 2, 100)
yd = uniform(-2, 2, 100)
zd = xd * np.exp(-xd**2 - yd**2)
gr.setviewport(0.1, 0.95, 0.1, 0.95)
gr.setwindow(-2, 2, -2, 2)
gr.setspace(-0.5, 0.5, 0, 90)
gr.setmarkersize(1)
gr.setmarkertype(gr.MARKERTYPE_SOLID_CIRCLE)
gr.setcharheight(0.024)
gr.settextalign(2, 0)
gr.settextfontprec(3, 0)
x, y, z = gr.gridit(xd, yd, zd, 200, 200)
h = np.linspace(-0.5, 0.5, 20)
gr.surface(x, y, z, 5)
gr.contour(x, y, h, z, 0)
gr.polymarker(xd, yd)
gr.axes(0.25, 0.25, -2, -2, 2, 2, 0.01)
gr.updatews()
def _xtickCallBack(self, x, y, svalue, value):
gr.setcharup(1., 1.)
gr.settextalign(gr.TEXT_HALIGN_LEFT, gr.TEXT_VALIGN_TOP)
gr.text(x, y, "%s (%s)"
% (time.strftime("%H:%M:%S",
time.localtime(self._startupTime
+ value)), svalue))
gr.setcharup(0., 1.)
# -*- animation -*-
"""
Animation of rotating DNA
"""
import gr
import gr3
gr.setviewport(0, 1, 0, 1)
for i in range(360):
gr.clearws()
gr3.clear()
gr3.drawmolecule('dna.xyz', bond_delta=2, tilt=45, rotation=i)
gr3.drawimage(0, 1, 0, 1, 500, 500, gr3.GR3_Drawable.GR3_DRAWABLE_GKS)
gr.settextcolorind(0)
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_TOP)
gr.text(0.5, 1, "DNA rendered using gr3.drawmolecule")
gr.updatews()
def _xtickCallBack(self, x, y, svalue, value):
gr.setcharup(1., 1.)
gr.settextalign(gr.TEXT_HALIGN_LEFT, gr.TEXT_VALIGN_TOP)
gr.text(x, y, "%s (%s)"
% (time.strftime("%H:%M:%S",
time.localtime(self._startupTime
+ value)), svalue))
gr.setcharup(0., 1.)
p0 = coord.getNDC()
x, y = p0.x, p0.y
charHeight = self.charheight * self._axes.sizey
window = gr.inqwindow()
# set viewport and window to NDC to allow 'line-drawing'
# in all regions and in NDC coordinates
# if hideviewport is False.
gr.setviewport(0, self._axes.sizex, 0, self._axes.sizey)
gr.setwindow(0, self._axes.sizex, 0, self._axes.sizey)
else:
x, y = self.x, self.y
charHeight = self.charheight
gr.setcharheight(charHeight)
gr.setcharup(*self.charup)
gr.settextalign(self.halign, self.valign)
gr.settextpath(self.textpath)
gr.setcharexpan(self.charexpan)
if self._font is not None and self._precision is not None:
gr.settextfontprec(self._font, self._precision)
gr.settextcolorind(self.textcolor)
if self._axes:
tbx, tby = gr.inqtext(x, y, self.text)
tbxmin, tbxmax = min(tbx), max(tbx)
tbymin, tbymax = min(tby), max(tby)
xmin, xmax, ymin, ymax = self._axes.viewportscaled
if (tbxmin < xmin or tbxmax > xmax
or tbymin < ymin or tbymax > ymax):
isInViewport = False
if not self.hideviewport or isInViewport:
gr.grid3d(x_tick, 0, z_tick, x_org[0], y_org[1], z_org[0], 2, 0, 2)
gr.grid3d(0, y_tick, 0, x_org[0], y_org[1], z_org[0], 0, 2, 0)
else:
gr.axes3d(x_tick, 0, z_tick, x_org[0], y_org[0], z_org[0], x_major_count, 0, z_major_count, -ticksize)
gr.axes3d(0, y_tick, 0, x_org[1], y_org[0], z_org[0], 0, y_major_count, 0, ticksize)
else:
if kind == 'heatmap':
ticksize = -ticksize
else:
gr.grid(x_tick, y_tick, 0, 0, x_major_count, y_major_count)
gr.axes(x_tick, y_tick, x_org[0], y_org[0], x_major_count, y_major_count, ticksize)
gr.axes(x_tick, y_tick, x_org[1], y_org[1], -x_major_count, -y_major_count, -ticksize)
if 'title' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_TOP)
gr.textext(0.5*(viewport[0] + viewport[1]), vp[3], _plt.kwargs['title'])
gr.restorestate()
if kind in ('wireframe', 'surface', 'plot3', 'scatter3', 'trisurf'):
x_label = _plt.kwargs.get('xlabel', '')
y_label = _plt.kwargs.get('ylabel', '')
z_label = _plt.kwargs.get('zlabel', '')
gr.titles3d(x_label, y_label, z_label)
else:
if 'xlabel' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_BOTTOM)
gr.textext(0.5 * (viewport[0] + viewport[1]), vp[2] + 0.5 * charheight, _plt.kwargs['xlabel'])
gr.restorestate()
if 'ylabel' in _plt.kwargs:
gr.savestate()
window = _plt.kwargs['window']
r_min, r_max = window[2], window[3]
gr.savestate()
gr.setcharheight(charheight)
gr.setlinetype(gr.LINETYPE_SOLID)
tick = 0.5 * gr.tick(r_min, r_max)
n = int(round((r_max - r_min) / tick + 0.5))
for i in range(n+1):
r = i / n
if i % 2 == 0:
gr.setlinecolorind(88)
if i > 0:
gr.drawarc(-r, r, -r, r, 0, 359)
gr.settextalign(gr.TEXT_HALIGN_LEFT, gr.TEXT_VALIGN_HALF)
x, y = gr.wctondc(0.05, r)
gr.text(x, y, "%g" % (r_min + i * tick))
else:
gr.setlinecolorind(90)
gr.drawarc(-r, r, -r, r, 0, 359)
for alpha in range(0, 360, 45):
sinf = np.sin(np.radians(alpha+90))
cosf = np.cos(np.radians(alpha+90))
gr.polyline([sinf, 0], [cosf, 0])
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_HALF)
x, y = gr.wctondc(1.1 * sinf, 1.1 * cosf)
gr.textext(x, y, "%d^o" % alpha)
gr.restorestate()
gr.restorestate()
if kind in ('wireframe', 'surface', 'plot3', 'scatter3', 'trisurf', 'volume'):
x_label = _plt.kwargs.get('xlabel', '')
y_label = _plt.kwargs.get('ylabel', '')
z_label = _plt.kwargs.get('zlabel', '')
gr.titles3d(x_label, y_label, z_label)
else:
if 'xlabel' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_BOTTOM)
gr.textext(0.5 * (viewport[0] + viewport[1]), vp[2] + 0.5 * charheight, _plt.kwargs['xlabel'])
gr.restorestate()
if 'ylabel' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_TOP)
gr.setcharup(-1, 0)
gr.textext(vp[0] + 0.5 * charheight, 0.5 * (viewport[2] + viewport[3]), _plt.kwargs['ylabel'])
gr.restorestate()
if kind in ('bar'):
if 'xnotations' in _plt.kwargs:
x_notations = _plt.kwargs.pop('xnotations')
yval = _plt.args[0][2] if _plt.kwargs['multi_bar'] else _plt.args[0][1]
if len(x_notations) == len(yval):
window = _plt.kwargs['window']
gr.setcharheight(charheight)
gr.settextalign(2, 1)
for i in range(1, len(x_notations) + 1):
x = viewport[0] + ((viewport[1] - viewport[0]) * i) / (window[1] - window[0])
y = viewport[2] - 0.5 * charheight
gr.textext(x, y, x_notations[i - 1])
if 'title' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_TOP)
gr.textext(0.5 * (viewport[0] + viewport[1]), vp[3], _plt.kwargs['title'])
gr.restorestate()
if kind in ('wireframe', 'surface', 'plot3', 'scatter3', 'trisurf', 'volume'):
x_label = _plt.kwargs.get('xlabel', '')
y_label = _plt.kwargs.get('ylabel', '')
z_label = _plt.kwargs.get('zlabel', '')
gr.titles3d(x_label, y_label, z_label)
else:
if 'xlabel' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_BOTTOM)
gr.textext(0.5 * (viewport[0] + viewport[1]), vp[2] + 0.5 * charheight, _plt.kwargs['xlabel'])
gr.restorestate()
if 'ylabel' in _plt.kwargs:
gr.savestate()
gr.settextalign(gr.TEXT_HALIGN_CENTER, gr.TEXT_VALIGN_TOP)
gr.setcharup(-1, 0)
gr.textext(vp[0] + 0.5 * charheight, 0.5 * (viewport[2] + viewport[3]), _plt.kwargs['ylabel'])
gr.restorestate()
if kind in ('bar'):
if 'xnotations' in _plt.kwargs:
x_notations = _plt.kwargs.pop('xnotations')
yval = _plt.args[0][2] if _plt.kwargs['multi_bar'] else _plt.args[0][1]
if len(x_notations) == len(yval):
window = _plt.kwargs['window']
gr.setcharheight(charheight)