我想在同一张图上(但不在同一列上)创建一个具有不同 fiddle 图的图形。 我的数据是数据框列表,我想为每个数据框创建一列的 fiddle 图。 (我更喜欢将最终图中的列名称作为另一列中每个数据帧内的名称)。
我使用了这段代码:
for i in range(0,len(sta_list)):
plt.violinplot(sta_list[i]['diff_APS_1'])
我知道这是错误的,我想将图中的结果图分开。
最佳答案
您可以使用 positions
参数指定每列 fiddle 图的 x 位置
for i in range(0, len(sta_list)):
plt.violinplot(sta_list[i]['diff_APS_1'], positions=[i])
用于演示从 this 获取数据集的示例答案发布
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x = np.random.poisson(lam =3, size=100)
y = np.random.choice(["S{}".format(i+1) for i in range(4)], size=len(x))
df = pd.DataFrame({"Scenario":y, "LMP":x})
fig, ax = plt.subplots()
for i, key in enumerate(['S1', 'S2', 'S3', 'S4']):
ax.violinplot(df[df.Scenario == key]["LMP"].values, positions=[i])
关于python - Matplotlib fiddle 图在同一列上重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59142997/