我正在尝试使用matplotlib创建一个表,我已经设法获取我的数据,但我正在努力进行最终格式化.我需要编辑图形的大小以包含我的所有数据,因为有些内容正在被删除.这是我目前的代码:
for struct, energy, density in clust_data:
fig=plt.figure()
ax = plt.gca()
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
colLabels=("Structure", "Energy", "Density")
rows=len(clust_data)
cellText=[]
for row in clust_data:
cellText.append(row)
the_table = ax.table(cellText=cellText,
colLabels=colLabels,
loc='center')
plt.savefig("table.png")
Run Code Online (Sandbox Code Playgroud)
这会创建一个像这样的表(我不完全确定如何通过某些行来获取行):

任何帮助是极大的赞赏!
我试图从下面的情节中删除原点蜱以阻止它们重叠,或者只是将它们彼此远离也会很好我试过这个:

xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[0].label1.set_visible(False)
Run Code Online (Sandbox Code Playgroud)
然而,这样就从y轴上删除了第一个和最后一个刻度,如下所示:
有没有人知道如何做到这一点?任何帮助将不胜感激.
编辑:添加了更多示例代码
import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlabel(xlab)
plt.ylabel(ylab)
ax.spines["right"].set_color('none')
ax.xaxis.set_ticks_position('top')
ax.yaxis.set_ticks_position('left')
ax.spines["bottom"].set_color('none')
ax.xaxis.set_label_position('top')
ax.spines['left'].set_color('black')
ax.spines['top'].set_color('black')
ax.tick_params(colors='black')
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[-1].label1.set_visible(False)
for x, y in all:
ax.plot(x, y, 'ro')
Run Code Online (Sandbox Code Playgroud) 我有一本看起来像这样的字典:
1: ['4026', '4024', '1940', '2912', '2916], 2: ['3139', '2464'], 3:['212']...
Run Code Online (Sandbox Code Playgroud)
对于几百个键,我想用键作为 y 为其一组 x 值绘制它们,我尝试了这段代码,它给出了下面的错误:
for rank, structs in b.iteritems():
y = b.keys()
x = b.values()
ax.plot(x, y, 'ro')
plt.show()
ValueError: setting an array element with a sequence
Run Code Online (Sandbox Code Playgroud)
我对如何进行有点不知所措,所以任何帮助将不胜感激!
我有一个列表:
[1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1]
我想用大于2的值打印列表的所有元素,但也打印列表中的位置,我可以自己打印元素:
for bonds in number_of_bonds:
if bonds >= 2:
print bonds
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用枚举,它将打印列表中的所有项目,其位置如下:
(0, 1)
(1, 1)
(2, 3)
Run Code Online (Sandbox Code Playgroud)
等等
那么这样做的正确方法是什么?