我想在我的散點圖后面繪制一個顏色圖,顯示從中值開始,你的引數是最差的。類似于下圖(但更平滑且具有定義的顏色圖):

這是我用來繪制該圖的 MWE:
x = np.arange(0,11)
y = [3.03533424, 3.22326981, 3.05219723, 4.5, 3.21876807, 3.14124761, 3.43615915, 3.21650377, 3.2924148 , 3.30075672, 5.7]
plt.plot(x, y, marker='o', color='k')
plt.axhline(np.median(y), color='blue', label='Median')
如果顏色圖的解析度高于我擁有的點數,那就太好了,這樣我就能得到我期望的平滑圖。
提前致謝。
uj5u.com熱心網友回復:
怎么用pcolormesh?這是非常直接的解決方法,可能有更聰明的方法。這個想法是創建一個在中值處達到峰值的虛擬資料(本例中為三角形分布),并使??用它來繪制顏色圖pcolormesh。虛擬資料具有 ( xdata-length, ydata-length ) 的 2D 形狀。它可以是任何分布,例如高斯分布。
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
res = 100 # data resolution
xdata = np.linspace(*np.random.randn(2), res) # random x data
ydata = np.random.randint(10,20)*xdata np.random.rand(res)*10 # random data with noise and ramp
ymax, ymin = np.max(ydata), np.min(ydata) # get data range
median = (ymax ymin) / 2.0
ydata_for_cmap = np.linspace(ymin, ymax, res) # y axis for cmap
zdata_for_cmap = np.hstack(
[np.linspace(ymin, median, int(res/2)),
np.linspace(median, ymin, int(res/2))]
) # triangular shape function for cmap
zz, _ = np.meshgrid(zdata_for_cmap, zdata_for_cmap, indexing="ij")
yy, xx = np.meshgrid(ydata_for_cmap, xdata, indexing="ij")
fig, ax = plt.subplots(1,1,figsize=(9,6))
cmap=cm.viridis
ax.plot(xdata, ydata, "ko-")
ax.axhline(median)
ax.pcolormesh(xx, yy, zz, cmap=cmap)
它創建了一個這樣的圖形。

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512059.html
上一篇:AndroidGradle插件僅支持kotlin-android-extensionsGradle插件版本1.6.20及更高版本
下一篇:Python-條形圖的格式
