gpt4 book ai didi

python - python 中的动态语句在一个实体发生变化时绘制图形

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:22 25 4
gpt4 key购买 nike

我必须在 3 个实体之间绘制图表 - “Server_names”、“Year”和“Exception_count”:

服务器名称存储在列表中:

Server_names=['s1','s2','s3']

年数也存储在列表中:

Year=['2013','2014']

一个服务器名称和一年的组合的 Exception_count 存储在字典中,并且随着服务器数量和年份的变化而变化。

Exception_count:{ 
1:[40,30,20], # 40(S1 and 2012), 30(s2 and 2012), 20(s3 and 2012)
2:[10,40,40] # 10(s1 and 2013), 40(s2 and 2013), 40(s3 and 2013)
}

“所以你看,如果我的服务器名称或年份增加,词典内容也会增加”

我想要绘制的图表如下所示: enter image description here

我已经尝试过代码,但代码仅限于 Exception_count 两个输入:

import numpy as np
import matplotlib.pyplot as plt

a=tuple([40,30,20]) # a is extracted from the Exception_count with key 1
b=tuple([10,40,40]) # b is extracted from the Exception_count with key=2
c=tuple(Server_names) #Server_names=['server_1','server_2','server_3']
d=tuple(Year) #Year=['2013','2014']


width=0.35
range_ab=np.arange(len(a))

fig = plt.figure()
ax = fig.add_subplot(111)

y_axis = ax.bar(range_ab, a, width, color='y')
y_axis2= ax.bar(range_ab+width, b, width, color='r')

ax.set_xticks(range_ab+width)
ax.set_xticklabels(c)

ax.legend((y_axis[0], y_axis2[0]),d)

plt.show()

上面的代码给了我所需的输出,但它不是动态的。如果 Exception_count 的 Key 值增加,输出将不会达到预期效果。

任何人都可以建议我如何用 python 编写动态查询吗?或者任何不同的方法,我可以根据给定的输入(Server_names、Year、Exception_count)创建上面的图表

提前致谢:)

最佳答案

试试这个:

import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt

#changes here
server_names=['s1','s2','s3','s4']
exception_count = {
'2012':[40,30,20,10],
'2013':[10,40,40,15],
'2014':[20,70,10,30]
}

#fixed part
year= sorted(exception_count.keys())
sN = len(server_names)
yN = len(year)

colors = { y:(rd.rand(),rd.rand(),rd.rand()) for y in year}

ind=np.arange(sN)
width=0.8/float(yN)

fig = plt.figure()
ax = fig.add_subplot(111)

rects = [ ax.bar(ind + i*width, exception_count[y], width, color=colors[y]) for (i,y) in enumerate(year)]

ax.set_xticks(ind + yN*width/2.0)
ax.set_xticklabels(server_names)

ax.legend(rects,year)

plt.show()

关于python - python 中的动态语句在一个实体发生变化时绘制图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21308689/

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