gpt4 book ai didi

python - 如何使用特殊设计的 matplot lib 在 python 中绘制条形图

转载 作者:行者123 更新时间:2023-12-01 02:38:20 25 4
gpt4 key购买 nike

我想显示比较不同出版物的算法的条形图。

数据具有以下属性:

  1. 出版年份(这是我想要的 x 轴)
  2. 分数(这是条形高度)
  3. 数据类型(这将设置每个条形的颜色)

我无法实现这一点(尚未执行第三个要求)。

这是示例数据和代码:

import numpy as np
import matplotlib.pyplot as plt

dtypes = ['type1', 'type2', 'type3']
names = ['name1','name2','name3', 'name4']
score = [89.2, 95.54, 85, 86]
years = [2016, 2017, 2016, 2015]
methods_dtype = ['type1', 'type2', 'type1', 'type1']
pub_years = np.unique(years)

fig, ax = plt.subplots()
barplot = ax.bar(years, score)
plt.show()

这里的第一个问题是 2016 年的两个条形图彼此重叠(我看到一些使用宽度增量移动条形图的示例,但是,在这种情况下,我事先不知道会使用多少种方法那一年)。
第二个问题是颜色编码。

请注意,输入只是数据的子集。一年中可能有多个条目(特定年份有多个出版物)。还可能存在具有多个条目的数据类型(对此数据类型进行操作的方法不止一种)。

最佳答案

以下是您可以执行的操作的示例,您可以根据自己的具体需求进行调整:

score = range(1,7)
years = [2015, 2016, 2017]*2
methods_dtype = ['type1', 'type2']*3

color = {'type1': 'b', 'type2': 'g'}
offset = {'type1': -0.2, 'type2': 0}

plt.figure(1).clf()
for s, y, m in zip(score, years, methods_dtype):
x = y + offset[m]
plt.bar(x, s, color=color[m], width=0.2)
plt.xticks([2015, 2016, 2017], [2015, 2016, 2017])

关于python - 如何使用特殊设计的 matplot lib 在 python 中绘制条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com