我想抽樣RGB或HSV顏色插值從綠色到藍色。不過,我希望高斯的平均值應該是綠色的,這樣大部分的高斯將被綠色所控制。最後,當我從綠色插入藍色或紅色時,我想實現這一點,你開始偏離人羣。事情是這樣的,但大部分應該是綠色..python,如何生成一組正常分佈的RGB顏色
回答
這可以通過使用HS V色彩空間,純綠色爲H = 120度。您可以創建在中心約mean
num
點HV空間二元正態分佈,並根據協方差矩陣cov
分佈:
import numpy as np
num = 1000
mean = [120,0.5] # [hue,value]
cov = [[20,0],[0,0.01]]
hv = np.random.multivariate_normal(mean,cov,num)
接下來,我們模矩陣,以便超越邊界點被環回:
hv[:,0] %= 360
hv[:,1] %= 1
接下來,我們從here藉以在HS空間的RGB圖(V = 1):
from matplotlib.colors import hsv_to_rgb
import matplotlib.pyplot as plt
V, H = np.mgrid[0:1:100j, 0:1:300j]
S = np.ones_like(V)
HSV = np.dstack((H,S,V))
RGB = hsv_to_rgb(HSV)
plt.imshow(RGB, origin="lower", extent=[0, 360, 0, 1], aspect=150)
最後,我們覆蓋到分佈H-航天:
plt.scatter(hv[:,0],hv[:,1])
plt.show()
可以玩弄cov
以達到所需的分佈。例如,cov = [[80,0.7],[0.1,0.006]]
給我們
此外,您還可以這個例子很容易地擴展到三個維度考慮飽和度的變化。
一種選擇如下。
您首先需要一個在其中心具有綠色的顏色圖。如果沒有可用的standard colormaps適合您,您可以構建自己的色彩地圖。在最簡單的情況下,將包括三種顏色(藍色,綠色,紅色)
colors = ["blue", "green", "red"]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("name", colors)
然後,您可以在正態分佈的中心使用一個標準化的實例,其中心。這裏我們選擇它在0;因此歸一化限制需要對稱於零。現在
norm = matplotlib.colors.Normalize(vmin=-3, vmax=3)
,具有正態分佈變量x
您可以從顏色表作爲範例,
sample = cmap(norm(x))
爲了繪製這個,看看下面一個完整的例子:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
n = 600
x = np.random.normal(size=n)
y = np.random.rand(n)
colors = ["blue", "green", "red"]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("name", colors)
norm = matplotlib.colors.Normalize(vmin=-3, vmax=3)
fig, (ax, ax2) = plt.subplots(nrows=2, figsize=(6,3),
gridspec_kw={"height_ratios":[1,3]}, sharex=True)
ax.axis("off")
ax.hist(x, bins=21, edgecolor="k")
sc = ax2.scatter(x,y,s=15, c=x, cmap=cmap, norm=norm)
fig.colorbar(sc, ax=ax2)
cax = fig.colorbar(sc, ax=ax)
cax.ax.set_visible(False)
plt.show()
y軸表示什麼? – Crispin
y軸只是用來伸展空間中的點。如果他們都在一條線上,那麼你就不能再區分它們了。相關維度是x維度,根據色彩地圖在空間和顏色中進行編碼。 – ImportanceOfBeingErnest
- 1. 如何生成一個rgb值的關閉顏色?
- 2. 如何劃分正確的一天中的顏色的RGB值?
- 3. 從RGB生成可讀的顏色?
- 4. Python - RGB LED顏色褪色
- 5. 生成RGB顏色儘可能
- 6. 顏色我想補或顏色的正常分佈的一部分正態分佈
- 7. 爲NXT磚分組RGB顏色
- 8. 如何爲創建的div動態生成rgb顏色
- 9. 如何生成128個不同的RGB顏色(int,int,int)?
- 10. JavaFx如何在CSS中使用java生成的RGB顏色
- 11. C#,如何生成CMYK兼容的只有顏色RGB
- 12. 如何計算RGB顏色中的顏色分量「數量」
- 13. Python,RGB顏色比較
- 14. 如何獲取RGB元組的Python顏色值
- 15. RGB顏色不正確?
- 16. 轉換RGB顏色英文顏色的名稱,如與Python
- 17. 如何生成顏色以按顏色對項目進行分組?
- 18. 從一種顏色生成顏色組合
- 19. 如何生成與顏色成比例的CSS顏色?
- 20. 生成具有完整rgb空間的畫布顏色選擇器
- 21. Python中的RGB顏色檢測語言
- 22. Python - 從正常(截斷爲0)分佈生成值
- 23. RGB顏色組成,而不是主色調
- 24. 顏色分解到它的RGB值
- 25. 生成一個範圍內的正態分佈稱量常數
- 26. 如何動態計算正確的RGB顏色與背景顏色對比?
- 27. 如何從圖像中獲得最常用的rgb顏色?
- 28. 改變RGB顏色
- 29. RGB顏色排列
- 30. Java顏色與RGB?
我不確定你在問什麼,但如果你正在繪製數據,請閱讀matplotlib中新默認顏色映射背後的推理http://matplotlib.org/users/dflt_style_changes.html –
我需要採用RGB或其他顏色格式的數據樣本,符合上述的分佈。 –
「cmap = cm.jet'' colorbar的顏色是否以綠色表示?所以''cmap(val)''其中val是你從高斯分佈中抽取的樣本應該返回你想要的。 – alexblae