import matplotlib.pyplot as plt import matplotlib.patches as mpatches fig, axs = plt.subplots(2, 2) x1, y1 = 0.3, 0.3 x2, y2 = 0.7, 0.7 ax = axs.flat[0] ax.plot([x1, x2], [y1, y2], ".") el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2) ax.add_artist(el) ax.annotate("", xy=(x1, y1), xycoords='data', xytext=(x2, y2), textcoords='data', arrowprops=dict(arrowstyle="-", color="0.5", patchB=None, shrinkB=0, connectionstyle="arc3,rad=0.3", ), ) ax.text(.05, .95, "connect", transform=ax.transAxes, ha="left", va="top") ax = axs.flat[1] ax.plot([x1, x2], [y1, y2], ".") el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2) ax.add_artist(el) ax.annotate("", xy=(x1, y1), xycoords='data', xytext=(x2, y2), textcoords='data', arrowprops=dict(arrowstyle="-", color="0.5", patchB=el, shrinkB=0, connectionstyle="arc3,rad=0.3", ), ) ax.text(.05, .95, "clip", transform=ax.transAxes, ha="left", va="top") ax = axs.flat[2] ax.plot([x1, x2], [y1, y2], ".") el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2) ax.add_artist(el) ax.annotate("", xy=(x1, y1), xycoords='data', xytext=(x2, y2), textcoords='data', arrowprops=dict(arrowstyle="-", color="0.5", patchB=el, shrinkB=5, connectionstyle="arc3,rad=0.3", ), ) ax.text(.05, .95, "shrink", transform=ax.transAxes, ha="left", va="top") ax = axs.flat[3] ax.plot([x1, x2], [y1, y2], ".") el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2) ax.add_artist(el) ax.annotate("", xy=(x1, y1), xycoords='data', xytext=(x2, y2), textcoords='data', arrowprops=dict(arrowstyle="fancy", color="0.5", patchB=el, shrinkB=5, connectionstyle="arc3,rad=0.3", ), ) ax.text(.05, .95, "mutate", transform=ax.transAxes, ha="left", va="top") for ax in axs.flat: ax.set(xlim=(0, 1), ylim=(0, 1), xticks=[], yticks=[], aspect=1) plt.show()
Related articles
matplotlib anchored box04
from matplotlib.patches import Ellipse import matplotlib.pyplot as plt from matplotlib.offsetbox import (AnchoredOffsetbox, DrawingArea, HPacker, TextArea)
sanic request stream
from sanic import Sanic from sanic.blueprints import Blueprint from sanic.response import stream, text from sanic.views import HTTPMethodView from sanic.views import stream as stream_decorator
amending request object
from random import randint from sanic import Sanic from sanic.response import text app = Sanic("Example")
authorized sanic
# -*- coding: utf-8 -*- from functools import wraps from sanic import Sanic from sanic.response import json
sanic blueprints
from sanic import Blueprint, Sanic from sanic.response import file, json app = Sanic("Example") blueprint = Blueprint("bp_example", url_prefix="/my_blueprint") blueprint2 = Blueprint("bp_example2", url_prefix="/my_blueprint2")
fastapi request directly
from fastapi import FastAPI, Request app = FastAPI() @app.get("/items/{item_id}") def read_root(item_id: str, request: Request):
fastapi websockets
from fastapi import FastAPI, WebSocket from fastapi.responses import HTMLResponse app = FastAPI()
simple fastapi wsgi
from fastapi import FastAPI from fastapi.middleware.wsgi import WSGIMiddleware from flask import Flask, escape, request
matplotlib multicursor
Showing a cursor on multiple plots simultaneously. This example generates three axes split over two different figures. On hovering the cursor over data in one subplot, the values of that datapoint are shown in all axes
polygon selector
import matplotlib.pyplot as plt from matplotlib.widgets import PolygonSelector # To create the polygon programmatically fig, ax = plt.subplots() fig.show() selector = PolygonSelector(ax, lambda *args: None)