简单地说,假设我有两个列表:
A->;有名称列表['A'、'B'、'C'、'D'、'E'、'F'、'G'、'H']
B->;具有值列表[5,7,3,8,2,9,1,3]
A是X轴标签的名称,B中的相应值是图形的高度(即Y轴)。
%matplotlib inline
import pandas as pd
from matplotlib import rcParams
import matplotlib.pyplot as plt
from operator import itemgetter
rcParams.update({'figure.autolayout': True})
plt.figure(figsize=(14,9), dpi=600)
reso_names = ['A','B','C','D','E','F','G','H']
reso_values = [5,7,3,8,2,9,1,3]
plt.bar(range(len(reso_values)), reso_values, align='center')
plt.xticks(range(len(reso_names)), list(reso_names), rotation='vertical')
plt.margins(0.075)
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')
plt.title('Graph', {'family' : 'Arial Black',
'weight' : 'bold',
'size' : 22})
plt.show()
但是我希望它每2个值都有子图。在这种情况下,应该有4个子图:
这种拆分应该是动态的(不是4个不同的循环,它应该根据输入的大小将图分成2个单位,如果列表A有10个值,那么它应该给出5个子图)。在
我知道了如何将图分成两半,但我需要使用每个图的N步来实现它(在这个例子中N是2)。
我把图分成两个相等的子图的代码是:
我只想让程序根据分裂数N动态地把图分成子图
您可以使用以下代码直接将列表
values
/names
与size
元素拆分为size//N + 1
列表中的N
元素:请注意,如果N不划分大小,最后一个子列表的元素将更少。在
然后您只需执行zip并在不同的图形中绘制每个子列表:
^{pr2}$如果列表不能被N分割,您可以取消注释最后一行注释,这样条就在最后一个子块上对齐:(
ax.set_xlim(0, N)
):相关问题 更多 >
编程相关推荐