![](/img/trans.png)
[英]How Can I draw a plot of box plots in python (multiple box-plots in one plot)
[英]How to map multiple heatmap plots on one radar plot in python?
我有三種數據分布:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
a = np.load('A.npy')
b = np.load('B.npy')
c = np.load('C.npy')
plt.figure(figsize=(12,4))
plt.subplot(131)
plt.hist2d(a,b,bins=300,norm=LogNorm())
plt.xlabel('A')
plt.ylabel('B')
plt.subplot(132)
plt.hist2d(a,c,bins=300,norm=LogNorm())
plt.xlabel('A')
plt.ylabel('C')
plt.subplot(133)
plt.hist2d(b,c,bins=300,norm=LogNorm())
plt.xlabel('B')
plt.ylabel('C')
plt.show()
有任何想法嗎?
首先,更簡單的部分是繪圖:我使用了3次相同的隨機數據,將它們縮小(0..2pi-> 0..2 / 3pi),然后將它們移動(0、2 / 33、4 / 3pi),得到3個大披薩部分:
import numpy as np
import matplotlib.pyplot as plt
parts = 3
ax = plt.subplot(111, polar=True)
shrink = 1./parts
for i in range(3):
# beginning and end angle of this part
start = i * 2/parts * np.pi
end = (i + 1) * 2/parts * np.pi
# Generate random data:
N = 10000
r = .5 + np.random.normal(size=N, scale=.2)
theta = (np.pi / 2 + np.random.normal(size=N, scale=.1))
# shift the data counterclockwise so that it fills the n-th part
theta += i * 2.*np.pi / parts
# Histogramming
nr = 50
ntheta = 200
r_edges = np.linspace(0, 1, nr + 1)
theta_edges = np.linspace(start, end, ntheta + 1)
H, _, _ = np.histogram2d(r, theta, [r_edges, theta_edges])
# Plot
Theta, R = np.meshgrid(theta_edges, r_edges)
ax.pcolormesh(Theta, R, H)
plt.show()
現在更難的部分:您仍然必須將點轉換為徑向值,我不確定如何為坐標定義此點,因為點具有3維,但您想映射到2d。 我希望這有幫助!
我的代碼基於此二維熱圖 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.