将matplotlib更新到当前版本后,在networkX中遇到节点标签问题:如果使用该nx.draw(G)
命令,将得到一个图形,但未显示任何标签。但是,让我们用示例进行说明:
import networkx as nx
import matplotlib.pylab as plt
T=nx.Graph()
T.add_edge(0,1)
nx.draw(T)
plt.show()
这将返回有效图,但没有节点标签。即使我像这样直接传递标签
import networkx as nx
import matplotlib.pylab as plt
T=nx.Graph()
T.add_edge(0,1)
labs={}
labs[0]='cake'
labs[1]='cookie'
nx.draw(T,labels=labs)
plt.show()
仍然没有标签。我很确定它(尤其是上层)在更新之前已在昨天运行。那么matplotlib 1.3.x是否有变化(不记得我之前运行的确切版本)?当前版本是:
matplotlib (1.4.0) (had to downgrade the pyparsing to 1.5.7 after updating the matplotlib)
networkx (1.9)
python 2.7.6
Mac OS X 10.9.4
小小额外功能:如果我运行上面的代码,nx.draw(T, with_labels=True)
会得到一个图(设置中的额外窗口),当我关闭它时,会TypeError: bad argument type for built-in operation
弹出一个窗口。如果我运行nx.draw(T, with_labels=False)
,它不会发生,这非常令人困惑,因为我认为with_labels
参数需要一个布尔值(请参阅此处),(部分地)它不会....?
我在这里误会什么吗?
编辑:@tcaswell希望有帮助!
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/usr/local/lib/python2.7/site-packages/matplotlib/figure.pyc in draw(self, renderer)
1077 dsu.sort(key=itemgetter(0))
1078 for zorder, a, func, args in dsu:
-> 1079 func(*args)
1080
1081 renderer.close_group('figure')
/usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc in draw(self, renderer, inframe)
2090
2091 for zorder, a in dsu:
-> 2092 a.draw(renderer)
2093
2094 renderer.close_group('axes')
/usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/usr/local/lib/python2.7/site-packages/matplotlib/text.pyc in draw(self, renderer)
536 renderer.open_group('text', self.get_gid())
537
--> 538 bbox, info, descent = self._get_layout(renderer)
539 trans = self.get_transform()
540
/usr/local/lib/python2.7/site-packages/matplotlib/text.pyc in _get_layout(self, renderer)
309 tmp, lp_h, lp_bl = renderer.get_text_width_height_descent('lp',
310 self._fontproperties,
--> 311 ismath=False)
312 offsety = (lp_h - lp_bl) * self._linespacing
313
/usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.pyc in get_text_width_height_descent(self, s, prop, ismath)
164 size = self.points_to_pixels(points)
165 width, height, descent = self.gc.get_text_width_height_descent(
--> 166 six.text_type(s), family, size, weight, style)
167 return width, height, 0.0*descent
168
TypeError: bad argument type for built-in operation
(我既不是数学家也不是程序员,但是我愿意学习,所以请耐心等待!)
这正在OSX后端(#3470)中遇到一个已知的(但尚未解决的)错误。
切换到基于Agg的后端之一应该通过避免它来“解决”问题。
更新
部分问题已被识别并合并https://github.com/matplotlib/matplotlib/pull/3564。此修复程序应该在mpl
v1.4.1及更高版本中。
H=nx。来自\u pandas\u edgelist(链接,source='source',target='target',edge\u attr='value') 这给了我边和边的列表 edge_labels=nx.get_edge_attributes(Q,'value')nx.draw_networkx_edge_labels(Q,pos=nx.draw(Q),标签=edge_labels
我第一次用苹果笔记本电脑。 我安装了Android Studio 4.0或4.1(我想)。它曾经在触摸栏中显示所有图标,如绿色运行图标和调试图标,以便我可以直接从那里使用它们。即使在调试模式下,我也会看到所有的图标,用于跳过或进入代码。 此后,我更新了Android Studio 2-3次,目前我使用的是Android Studio 4.2.1,自我第一次更新以来,它已停止显示Android St
我正在编写一个简单的节点。js项目使用最新版本的eclipse IDE for JavaScript和Web开发者版本:2019-09 R(4.13.0)构建id:20190917-1200 OS:Mac OS X,v.10.15.1,x86_64/cocoa Java版本:12.0.2使用最新版本的node。js(Node.jsv12.13.0)我知道TODO任务没有出现在任务视图窗口中:示例代
SyntaxError:无效输入“h”:预期为“I/I”(第10行,第28列(偏移量:346))“merge(p:primaryconsumer),其中p.name=svc.name” 我100%确信这些名称是唯一的,并且将与现有节点集中的唯一使用者名称相匹配(有待观察)。 当唯一节点属性匹配时,如何将现有属性添加到新数据中?(我希望获得唯一的ID,但我必须能够在匹配上执行新数据的更新)
问题内容: 对于那些来自PHP背景的人来说,杀死节点并在每次代码更改后重新启动它的过程似乎非常繁琐。使用节点启动脚本以保存代码更改后自动重新启动节点时,是否有任何标志? 问题答案: forever模块具有多个node.js服务器的概念,并且可以启动,重新启动,停止和列出当前正在运行的服务器。它还可以监视文件更改并根据需要重新启动节点。 如果尚未安装,请安装: 安装后,调用命令:使用该标志监视文件的
我有一个在node-kafka驱动的node.js上运行的kafka消费组。当这个消费组处于活动状态或处于活动状态时,我希望看到它被kafa-消费组CLI报告。 kafka消费者组CLI确实显示了控制台消费者,而不仅仅是节点消费者。 我可以在Kafka工具中看到节点使用者组。它不会显示在Kafa consumer groups CLI输出中