我想在matplotlib中旋转一个Rectangle,但是当我应用转换时,矩形不再显示:
rect = mpl.patches.Rectangle((0.0120,0),0.1,1000)
t = mpl.transforms.Affine2D().rotate_deg(45)
rect.set_transform(t)
Run Code Online (Sandbox Code Playgroud)
这是一个已知的错误还是我犯了错误?
从我从https://s3.amazonaws.com/nyc-tlc/misc/taxi_zones.zip获得的 shapefile 开始,我想绘制曼哈顿区,并为每个出租车区绘制轮廓。
此代码单独轮换每个单独的出租车区域,而不是一次轮换所有。
import geopandas as gpd
from matplotlib import pyplot as plt
fname = "path_to_shapefile.shp"
df = gpd.read_file(fname)
df = df[df['borough'] == "Manhattan"]
glist = gpd.GeoSeries([g for g in df['geometry']])
glist = glist.rotate(90)
glist.plot()
Run Code Online (Sandbox Code Playgroud)
[编辑] 我进一步改进了它,以便能够以编程方式旋转图像。但是,如果我添加一个图例,那么它也会被旋转,这是不可取的。仍在寻找更好的解决方案。请注意,还有这个 stackoverflow 帖子(如何将 matplotlib 图旋转 90 度?),但是,旋转图而不是图像的解决方案仅适用于 90 度旋转。
import geopandas as gpd
from matplotlib import pyplot as plt
import numpy as np
from scipy import ndimage
from matplotlib import transforms
fname = "path_to_shapefile.shp"
df = gpd.read_file(fname)
df = …
Run Code Online (Sandbox Code Playgroud) 如何旋转图像文件并在matplotlib中绘制?
我知道我可以使用PIL打开它并旋转它,但这对于这个简单的功能似乎太过分了,我可能没找到.
我在这里发现了这段代码,但似乎不起作用:
from matplotlib import pyplot, image, transforms
img = image.imread('filename.png')
pyplot.ion()
fig = pyplot.figure()
ax = fig.add_subplot(111)
for degree in range(360):
pyplot.clf()
tr = transforms.Affine2D().rotate_deg(degree)
ax.imshow(img, transform=tr)
fig.canvas.draw()
Run Code Online (Sandbox Code Playgroud) 我正在用以下代码绘制一些数据的均值和方差的变化
import matplotlib.pyplot as pyplot
import numpy
vis_mv(data, ax = None):
if ax is None: ax = pyplot.gca()
cmap = pyplot.get_cmap()
colors = cmap(numpy.linspace(0, 1, len(data)))
xs = numpy.arange(len(data)) + 1
means = numpy.array([ numpy.mean(x) for x in data ])
varis = numpy.array([ numpy.var(x) for x in data ])
vlim = max(1, numpy.amax(varis))
# variance
ax.imshow([[0.,1.],[0.,1.]],
cmap = cmap, interpolation = 'bicubic',
extent = (1, len(data), -vlim, vlim), aspect = 'auto'
)
ax.fill_between(xs, -vlim, -varis, color = 'white')
ax.fill_between(xs, varis, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 matplotlib 图内的绘图旋转 90 度。我发现这篇文章,但它使用 pyplot 并且我使用简单的绘图,因此不起作用,而且他没有解释旋转 pyplot 的代码,但提到转换属性也可以用于旋转简单的绘图。我尝试在网上搜索转换教程,但无法理解这个概念。
这是我的代码片段
from matplotlib.figure import Figure
import numpy
# random data
data = numpy.random.randn(100)
# making figure on which plot will be draw
fig = Figure(figsize=(11, 8),dpi=100)
# adding plot to figure
plot1 = fig.add_subplot(111)
# plotting values
plot1.plot(data)
# saving figure for later use
fig.savefig("graph.jpeg")
Run Code Online (Sandbox Code Playgroud)
它产生以下结果;
但我想要这样的输出;