假设我要为f[n] = e^{-(x-n)^2}/n
可视化功能n=1...10
。请注意,这些不是概率分布。
(实际上不是我想做的情节,但足够接近)。
我想用小提琴图(https://matplotlib.org/gallery/statistics/violinplot.html)来演示它,其中每个n
都有一条垂直线,并在垂直线的两侧绘制函数。
但是小提琴图似乎仅用于显示数据样本的位置。因此,所有用于它的工具都需要我为其提供数据集。我要绘制的数据不是该类型的-它是实际的已知函数。
[[如果您想获得更多背景信息,这与我的早先问题-https://stats.stackexchange.com/questions/403359/visualizing-2d-data-when-one-dimension-is-discrete-and-the-other-continuous]有关。
答案 0 :(得分:1)
这个问题有点笼统,所以也许这实际上并不是您想要的。但是据我了解,您只想在位置f(x,n)
上的不同位置n
上绘制函数,并在垂直轴上绘制x
。
import numpy as np
import matplotlib.pyplot as plt
f = lambda x, n: np.exp(-(x-n)**2)/n
x = np.linspace(-2,12,101)
ns = np.arange(1,11)
for n in ns:
plt.fill_betweenx(x, -f(x,n)+n, f(x,n)+n, color="C0", alpha=0.5)
plt.xlabel("n")
plt.ylabel("x")
plt.xticks(ns)
plt.show()
答案 1 :(得分:0)