【问题标题】:How to get the data plotted correctly using matplotlib? [duplicate]如何使用 matplotlib 正确绘制数据? [复制]
【发布时间】:2019-05-31 07:06:46
【问题描述】:

我有 3 个包含手段的列表:

FFA_mean = ['0.511', '0.704', '0.922', '0.764', '1.084']
LG_mean = ['0.018', '0.001', '-0.003', '-0.005', '-0.004']
PPA_mean = ['1.161', '1.000', '0.875', '0.785', '0.336']

以及它们各自的置信区间:

FFA_ci = [0.245, 0.24892, 0.3038, 0.22736, 0.24304]
LG_ci = [0.19992, 0.21952, 0.147, 0.1666, 0.1862]
PPA_ci = [0.27440000000000003, 0.28615999999999997, 0.34496, 0.30968, 0.1862]

这是我用来绘制这些数据的代码:

import matplotlib.pyplot as plt

barWidth = 0.3

n= 5
r1 = np.arange(n)


plt.bar(r1, FFA_mean, width = barWidth, color = 'pink', label='FFA')
plt.bar(r1+barWidth, LG_mean, width = barWidth, color = 'orange', label='Lingual Gyrus')
plt.bar(r1+barWidth*2, PPA_mean, width = barWidth, color = 'cyan', label='PPA')


plt.xticks([r + barWidth for r in range(len(FFA_mean))], ['House', 'Chair', 'Shoe', 'Bottle', 'Face'])
plt.ylabel('Percentage BOLD Signal Change')
plt.xlabel('Stimuli Class')
plt.title('FEATQuery Analysis for FFA, Lingual Gyrus and PPA')
plt.legend()


plt.show()

输出是:

这是错误的数据,条形不符合我的实际值,我不知道为什么。谁能发现我的代码有什么问题?

【问题讨论】:

    标签: python-2.7 matplotlib bar-chart


    【解决方案1】:

    问题是您在所有三个列表 (FFA_mean, LG_mean, PPA_mean) 中的平均值都是字符串类型。您需要将它们转换为浮点类型以获得正确的值顺序。一种方法是使用map 函数将所有字符串转换为浮点类型。 map 将返回一个不被plt.bar() 接受的生成器,因此您将其转换回列表。

    FFA_mean = list(map(float,['0.511', '0.704', '0.922', '0.764', '1.084']))
    LG_mean = list(map(float,['0.018', '0.001', '-0.003', '-0.005', '-0.004']))
    PPA_mean = list(map(float,['1.161', '1.000', '0.875', '0.785', '0.336']))
    

    替代例如使用列表理解

    FFA_mean = ['0.511', '0.704', '0.922', '0.764', '1.084']
    FFA_mean = [float(i) for i in FFA_mean]
    

    对于其他两个列表也是如此。

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 2023-02-01
      • 2014-06-12
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多