我正在尝试创建一个类似于下面摘自本文的图,本质上是一个具有两个不同 y 轴的 3d 图。按照本博客中的指导,我创建了一个最小的示例。
模块
from mpl_toolkits import mplot3d
import numpy as np
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
创建一些数据
def f(x, y):
return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
Z2 = Z*100+100
Run Code Online (Sandbox Code Playgroud)
绘图
这会创建一个漂亮的 3D 绘图,但显然只有一个 y 轴。我在网上找不到任何关于如何使用 python 的建议,尽管有一些关于 matlab 的建议。
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, …Run Code Online (Sandbox Code Playgroud) 我的布局中有一个地图和数据表组件,可以通过回调进行更新。数据表是可编辑的,用户可以向新表添加新信息。更新表的点击事件时
我有两个回调,一个用于更新地图,另一个用于数据表。我想做的是从数据表回调内部运行地图回调。基本上,我想根据数据表的值更新地图。
我可以从回调运行另一个回调或在另一个回调中运行某些代码行吗?试图找出一种优雅而有效的方法来做到这一点。
layout = html.Div([
# Plot map
dcc.Graph(id="map-graph"),
# DataTable
dash_table.DataTable(
id="table",
columns=[{"id":"Type","name":"Type"},
{"id":"space","name": "space"}],
sort_action="native",
filter_action="native",
row_deletable=True
),
# Update map
dbc.Button("Update map", id="update-map", className="mr-1"),
# Update Table
dbc.Button("Update table", id="update-table", className="mr-1")
]),
# Callbacks
# Update map
@app.callback(Output("map-graph", "figure"),
[Input("update-map", "value")])
def updatemap(value):
...
do something
...
return value
# Update table
@app.callback(Output("table", "data"),
[Input("update-table", "value")])
def updatetable(value):
...
do something
...
# Run the code inside previous callback which updates the map.
return rows
Run Code Online (Sandbox Code Playgroud) 与 qtTree 类似,我想深入了解数据表的列。我想用一个例子可以更好地说明这一点。假设我们有一个包含三列的数据框:国家/地区、城市、人口,例如:
Country City Population
USA New-York 19MM
China Shanghai 26MM
China Beijing 20MM
USA Los Angeles 12MM
France Paris 11MM
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在虚线图数据表中理想地呈现这些数据,如下所示:
Country City Population
+USA 31MM
/----> New-York 19MM
/----> Los Angeles 12MM
+China 46MM
/----> Shanghai 26MM
/----> Beijing 20MM
+France 11MM
/----> Paris 11MM
Run Code Online (Sandbox Code Playgroud)
分组国家/城市将展开(或者可能在单击行 -?- 时隐藏/显示)。在国家一级,人口将是其选民的总和,在城市一级,人口将是来自该城市的人口。
库 dash_treeview_antd 允许树视图表示,但我不知道如何包含人口列。也许有一种更简单的方法,首先在 pandas 中进行 groupby,然后进行回调来隐藏/显示当前行选择/单击?
我一直在玩弄.groupbypandas 和回调中的' active_cell' Dash DataTable 属性。
def defineDF():
df = pd.DataFrame({'Country': ['USA', 'China', 'China', 'USA', 'France'],
'City': ['New-York', …Run Code Online (Sandbox Code Playgroud) Dash DataTable 组件在列标题下提供了一个自由文本过滤器。
如何用包含所有可供选择的唯一值的下拉过滤器替换此过滤器?
Excel 中现成的东西:
或者在DataTables JavaScript 组件中进行一些简单的修改
我知道我可以在通过回调与 DataTable 交互的 DataTable 之外使用下拉过滤器,但我希望下拉过滤器成为 DataTable 列标题的一部分。从这个意义上说,我不想使用以下解决方案:在破折号中从下拉列表中过滤行后显示数据表