python - 使用 matplotlib 在一个图上绘制两个独立的图,x 和 y 上的比例不同
问题描述
我希望将两个独立的图叠加在一个matplotlib
图形上。
所以我从osmnx
import osmnx as ox
G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
fig, ax = ox.plot_graph(G)
然后我绘制networkx
图表:
nx.draw(nx.generators.barabasi_albert_graph(10,3), ax = ax)
而且我希望一个很好地覆盖在另一个上,但是坐标完全不同。第一个是 lon,lat,第二个是从 networkx 随机生成的。
如何很好地缩放它们以使它们可见?
我尝试了 ax.twinx(),但它对我不起作用。
PS。对于网络,我不能nx.draw(G, ax = ax)
为 osmnx 传递 ax,它仅从 plot 返回fig, ax = ox.plot(G)
解决方案
对于网络,我可以将 ax nx.draw(G, ax = ax) 传递给 osmnx 而不是,它仅从绘图返回 fig, ax = ox.plot(G)
请注意,在最新的OSMnx 中,您可以将 an 传递ax
给plot_graph
函数。这应该会在下周的新版本中发布,或者你可以同时使用 GitHub 的 master 分支。
关于缩放非空间图,我不相信networkx 可以让您在特定坐标处绘制节点或边。您必须手动完成所有操作。但是,对于您的具体问题,您需要首先标准化您的非空间图形坐标,然后将它们缩放到空间 OSMnx 图形坐标的范围。这个matlab示例展示了如何以及如何轻松地转换为 python。
推荐阅读
- flutter - Flutter:导航离开时如何关闭 SnackBar?
- javascript - JavaScript 嵌套数组不能使用值?
- python - 在Python中将二元运算符重载为一元
- r - R MSM 包:Q 矩阵对于不同的协变量值是相同的,即使转换率不同
- c# - 在 PackageManagerConsole 中添加迁移时,EF Core IEntityTypeConfiguration 类中未命中断点
- reactjs - React useEffect Warning 警告:无法对未安装的组件执行 React 状态更新
- javascript - 如何使用 Date-fns 检查日期是否早于一天中的给定时间?
- javascript - 如何将数组中的所有参数相乘并返回乘积
- javascript - 从 gRPC 调用获得空响应
- c# - 将一个 Unity .exe 文件嵌入到多个 WPF 页面中