schrodinger.ui.qt.radial_plot module

Widgets to plot various kinds of radial plots

class schrodinger.ui.qt.radial_plot.Sector(ring: str, theta_0: float, theta_1: float, data: Any)

Bases: object

A Sector described a specific region within a one ring of a RadianRingHistogram and that region’s associated data, if any.

Variables
  • ring – the label associated with the ring the region is located in

  • theta_0 – the lower bound theta of the region in radians

  • theta_1 – the upper bound theta of the region in radians

  • data – any associated data with the region

ring: str
theta_0: float
theta_1: float
data: Any
__init__(ring: str, theta_0: float, theta_1: float, data: Any) None
class schrodinger.ui.qt.radial_plot.RadialRingHistogram(figure, *args, **kwargs)

Bases: PyQt6.QtCore.QObject

A RadialRingHistogram is a radial plot such that each ring, i.e each concentric circle, describes a separate histogram. Each histogram in the rings share the same x-axis namely the theta coordinates of the polar plot

Because the y-axis, i.e. the radius of the polar plot, is not used to display the frequency of the histogram data, another dimension is needed to display the frequency for example, color

Variables
  • sectorClicked – emitted when a sector is clicked on by the user

  • mouseRightButtonClicked – emitted when mouse right click button pressed on plot

sectorClicked
mouseRightButtonClicked
__init__(figure, *args, **kwargs)

Initialize the histogram

Parameters

figure (smatplotlib.SmatplotlibCanvas) – the canvas to plot the figure on

initFigure()

Clear and initialize the internal matplotlib figure

setRingData(ring_types, ring_data)

Set the data associated with each ring and the labels that are used for each ring in the plot.

NOTE: len(ring_types) must equal len(ring_data)

Parameters
  • ring_types (List[str]) – the labels to describe each ring

  • ring_data (List[List[Any]]) – the data associated with each ring to plot a histogram for

drawTicks()

Set the y-tick labels on the polar plot to the ring_types set from setRingData

setSectorData(sector_data, sector_width)

Set the relevant information regarding data for each sector

Parameters
  • sector_data (List[List[Any]]) – the histogram data associated with each sector

  • sector_width (float) – the implicit width used when calculating the histogram of sector_data

drawPlot(*args, **kwargs)

Plot the histograms with the data for each ring

shouldShowSectorAnnotation(sector)

Whether the given sector should show an annotation

Parameters

sector (Sector) – the sector in question

Returns

whether to display the annotation

Return type

bool

getSectorAnnotation(sector)

Get the text that should be displayed as the annotation for the given sector

Parameters

sector (Sector) – the sector in questions

Returns

the annotation

Return type

str

getSectorAnnotationLoc(sector)

Get the absolute location of the annotation to be displayed for the given sector in polar coordinates

Parameters

sector (Sector) – the sector in question

Returns

A tuple of (radius, theta) of where the annotation should be placed

Return type

Tuple[float, float]

blockSignals(self, b: bool) bool
childEvent(self, a0: QChildEvent)
children(self) List[QObject]
connectNotify(self, signal: QMetaMethod)
customEvent(self, a0: QEvent)
deleteLater(self)
destroyed

destroyed(self, object: typing.Optional[QObject] = None) [signal]

disconnect(a0: QMetaObject.Connection) bool
disconnect(self) None
disconnectNotify(self, signal: QMetaMethod)
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) List[QByteArray]
event(self, a0: QEvent) bool
eventFilter(self, a0: QObject, a1: QEvent) bool
findChild(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChild(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) QObject
findChildren(self, type: type, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, name: str = '', options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, type: type, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
findChildren(self, types: Tuple, re: QRegularExpression, options: Qt.FindChildOption = Qt.FindChildrenRecursively) List[QObject]
inherits(self, classname: str) bool
installEventFilter(self, a0: QObject)
isSignalConnected(self, signal: QMetaMethod) bool
isWidgetType(self) bool
isWindowType(self) bool
killTimer(self, id: int)
metaObject(self) QMetaObject
moveToThread(self, thread: QThread)
objectName(self) str
objectNameChanged

objectNameChanged(self, objectName: str) [signal]

parent(self) QObject
property(self, name: str) Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

receivers(self, signal: PYQT_SIGNAL) int
removeEventFilter(self, a0: QObject)
sender(self) QObject
senderSignalIndex(self) int
setObjectName(self, name: str)
setParent(self, a0: QObject)
setProperty(self, name: str, value: Any) bool
signalsBlocked(self) bool
startTimer(self, interval: int, timerType: Qt.TimerType = Qt.CoarseTimer) int
staticMetaObject = <PyQt6.QtCore.QMetaObject object>
thread(self) QThread
timerEvent(self, a0: QTimerEvent)
tr(sourceText: str, disambiguation: typing.Optional[str] = None, n: int = - 1) str