我有一些数据,我有实验和模拟值,数据不是真正连续而没有引入新的定义(我不想做)所以我希望通常在一个散点类型图,每个集合有两个标记,然后在X轴上标记每个集合。
基本上我无法弄清楚如何使用matplotlib(我更喜欢使用它来与我提供其他数据的方式一致)。
数据示例如下:
1cm square: 0.501, 0.505
1cm圈 0.450, 0.448
1cm X 2cm rect: 0.665, 0.641
答案 0 :(得分:3)
我可能会误解这个问题,但听起来你似乎想要这些内容:
import matplotlib.pyplot as plt
# Using this layout to make the grouping clear
data = [('apples', [0.1, 0.25]),
('oranges', [0.6, 0.35]),
('pears', [0.1, 0.18]),
('bananas', [0.7, 0.98]),
('peaches', [0.6, 0.48])]
# Reorganize our data a bit
names = [item[0] for item in data]
predicted = [item[1][0] for item in data]
observed = [item[1][1] for item in data]
# It might make more sense to use a bar chart in this case.
# You could also use `ax.scatter` to plot the data instead of `ax.plot`
fig, ax = plt.subplots()
ax.plot(predicted, color='lightblue', marker='o', linestyle='none',
markersize=12, label='Predicted')
ax.plot(observed, color='red', marker='s', linestyle='none',
markersize=12, label='Observed')
ax.margins(0.05)
ax.set(xticks=range(len(names)), xticklabels=names, ylabel='Meaningless')
ax.legend(loc='best', numpoints=1)
ax.grid(axis='x')
plt.show()
关键部分是设置xticks和xticklabels以对应您的数据" groups"。您可以用其他几种方式绘制数据(例如条形图等),但在每种情况下使用xticks / labels都是相同的。