Python - 绘制列表与其他列表的列表

时间:2014-08-26 14:23:38

标签: python matplotlib

所以,我有一个这样的电台列表(字符串):

station_list=[station1, station2, station3, ..., station63]

我有一个列表,其中包含每个站点的测量值,但它们没有相同数量的度量。所以,我有这样的事情:

measure_list=[[200.0, 200.0, 200.0, 200.0, 200.0, 300.0], [400.0, 400.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0], [300.0, 400.0, 400.0, 400.0, 400.0], ..., [1000.0, 1000.0, 1000.0, 1000.0, 1000.0], [7000.0]]

measure_list有63"子列表",每个电台的子列表。

最后,我想创建一个图表,其中x轴上的站点和y轴上的度量值,用于比较所有站点的度量。

感谢您的帮助。 (抱歉我的英语不好;))

1 个答案:

答案 0 :(得分:1)

我建议关注this example ...

这是对结果的改编:

import numpy as np
import matplotlib.pyplot as plt

station_list=['station1', 'station2', 'station3', 'station63']
measure_list=[
    [200.0, 200.0, 200.0, 200.0, 200.0, 300.0],
    [400.0, 400.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0],
    [300.0, 400.0, 400.0, 400.0, 400.0],
    [1000.0, 1000.0, 1000.0, 1000.0, 1000.0],
    ]
x = range(len(station_list))

assert len(station_list) == len(measure_list) == len(x)

for i, label in enumerate(station_list):
    y_list = measure_list[i]
    x_list = (x[i],) * len(y_list)

    plt.plot(x_list, y_list, 'o')

# You can specify a rotation for the tick labels in degrees or with keywords.
plt.xticks(x, station_list, rotation='vertical')

# Pad margins so that markers don't get clipped by the axes
# plt.margins(0.2)
plt.xlim(np.min(x) - 0.5, np.max(x) + 0.5)

# Tweak spacing to prevent clipping of tick-labels
plt.subplots_adjust(bottom=0.15)
plt.show()

给出了: Result of the given example