Я пытаюсь использовать matplotlib для воспроизведения фигуры из недавней статьи ( см. Здесь и ниже). На рисунке они принимают стандартный график xy и поворачивают его на 45 градусов. Есть ли хороший способ сделать это в matplotlib и повернуть топор?
![rank turbulence histogram](https://i.stack.imgur.com/RgNfR.jpg)
В настоящее время единственный способ найти это - относитесь к сюжету как к изображению, а затем комментируйте его по факту. Это кажется очень грязным, и кажется, что должен быть более хороший способ сделать это, манипулируя самим топором.
import numpy as np
import networkx as nx
from scipy import ndimage
import matplotlib.pyplot as plt
# Make sample data to plot, as a matrix (like a heat map)
sizes = [170,100,80,50]
p = np.array([[0.80,0.1,0.05,0.05],
[0.10,0.9,0.02,0.02],
[0.05,0.02,0.9,0.03],
[0.05,0.02,0.03,0.9]])
p = p + np.random.uniform(0.0,0.05,p.shape)
p = p / p.sum(axis=0)
p = p + p.T - np.diag(p.diagonal())
G = nx.stochastic_block_model(sizes,p)
# Convert matrix into an image
im = nx.to_numpy_array(G) + 1
np.fill_diagonal(im,1)
imrot45 = ndimage.rotate(im, 315)
rot45_neg = (imrot45==0) * -1.0
rot45_neg[rot45_neg<0] = np.nan
implot = (imrot45+rot45_neg)
# Plot the image
fig, ax = plt.subplots(1,1,dpi=100,figsize=(6,6))
ax.imshow(implot)
ax.set_axis_off()
plt.show()