我在dash_table.DataTable数据框中显示,其中有一列颜色名称为十六进制格式,代码如下:
import dash
import dash_table
import pandas as pd
df = pd.DataFrame(data = dict(COLOR = ['#1f77b4', '#d62728', '#e377c2', '#17becf', '#bcbd22'],
VALUE = [1, 2, 3, 4, 5]))
app = dash.Dash(__name__)
app.layout = html.Div([dash_table.DataTable(id = 'table',
columns = [{"name": i, "id": i} for i in df.columns],
data = df.to_dict('records'))],
style = dict(width = '200px'))
if __name__ == '__main__':
app.run_server()
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
我想设置每个单元格及其内容的背景颜色(可能还有字体颜色),但仅限于该列(始终是表格的第一列)以获得以下结果:
对我来说可以dash_table.DataTable用plotly.graph_objects.Table(文档)替换,这也许更可定制;plotly.graph_objects.Table前提是我可以在仪表板中实现dash。
版本信息:
Python 3.7.0
dash 1.12.0
dash-table 4.7.0 …Run Code Online (Sandbox Code Playgroud) 在一个大的熊猫数据帧,我有三列(fruit,vegetable,和first_name)。这些列的值是列表。
从列表中,我想为 DataFrame 的每一行创建一个包含字典列表的新列。
我有三列(fruit、vegetable和first_name),每行都有列表作为它们的值。
我的数据框的第一行:
df = pd.DataFrame({
"fruit": [["Apple", "Banana","Pear","Grape","Pineapple"]],
"vegetable": [["Celery","Onion","Potato","Broccoli","Sprouts"]],
"first_name": [["Sam", "Beth", "John", "Daisy", "Jane"]]
})
Run Code Online (Sandbox Code Playgroud)
如何将三列转换为一列并使值看起来像这样?
[
{"fruit": "Apple", "vegetable":"Celery", "first_name":"Sam"},
{"fruit": "Banana", "vegetable":"Onion", "first_name":"Beth"},
{"fruit": "Pear", "vegetable":"Potato", "first_name":"John"},
{"fruit": "Grape", "vegetable":"Broccoli", "first_name":"Daisy"},
{"fruit": "Pineapple", "vegetable":"Sprouts", "first_name":"Jane"}
]
Run Code Online (Sandbox Code Playgroud) 我的数据框看起来像:
X Y Val
10 10 17
10 30 28
10 40 35
10 50 15
20 10 17
20 30 18
20 40 33
20 50 15
40 10 37
40 30 29
40 40 49
40 50 40
Run Code Online (Sandbox Code Playgroud)
"Val"我想提取给定的插值"X","Y"即使它们不在 df 中。
例如:我可以很容易地得到"Val"forX=10和Y=50。
但是,假设我想要X=15哪个Y=15不在数据框中?是否可以提取相同的内容?Pandas有这样的功能吗?
我正在尝试将值转换为轴单位。我检查了具有类似问题的代码,但没有一个解决了这个特定的挑战。如下图所示,预期图 (A) 应该在 x 轴上显示月份(一月、二月等),但图 (B) 中却显示日期(2015 年 1 月等)。
\n\n下面是源码,请帮忙。谢谢。
\nplt.rcParams["font.size"] = 18\n\nplt.figure(figsize=(20,5))\nplt.plot(df.air_temperature,label="Air temperature at Frankfurt Int. Airport in 2015")\nplt.xlim(("2015-01-01","2015-12-31"))\nplt.xticks(["2015-{:02d}-15".format(x) for x in range(1,13,1)],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])\nplt.legend()\nplt.ylabel("Temperature (\xc2\xb0C)")\nplt.show()\n\nRun Code Online (Sandbox Code Playgroud)\n 我想使用方法查看 DataFrame 中数据类型的计数,get_dtype_counts()但它给出了错误。请帮忙。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(5))
df
Run Code Online (Sandbox Code Playgroud)
输出
0
0 0
1 1
2 2
3 3
4 4
Run Code Online (Sandbox Code Playgroud)
错误
df.get_dtype_counts()
AttributeError Traceback (most recent call last)
<ipython-input-9-aa9a46562585> in <module>()
1 df = pd.DataFrame(np.arange(5))
----> 2 df.get_dtype_counts()
3 # df
/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
-> 5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute …Run Code Online (Sandbox Code Playgroud) 我使用 2d 动画包和 2D Ik 包创建了 2D 精灵动画。我的角色是一张精灵表(PBS 文件)。在 PBS 文件中,所有的结构(眼睛、嘴巴等 - 角色基本上是一个带脸的正方形)都被排列并附加了骨头。然后我在 Unity 中对角色的空闲动画进行了动画处理。
动画很复杂,总共1028帧(约17秒)。
否则场景几乎是空的。有一些带有碰撞器和刚体的精灵用于简单的平台。有一个 1024 px 的背景图像。x 1024 像素。
在播放模式下,FPS 下降至 30 FPS 左右(或更低)。
我有另一个没有动画但有大量资源的场景(对于 2D 场景,有数百个精灵,其中许多精灵不断运动)。该场景始终以 210++ FPS 运行。
为什么这一动画会毁掉 FPS?我刚刚开始为所有角色创建动画。如果我向场景中的 NPC(敌人)添加类似的动画,那么这个东西可能根本不起作用。
任何建议表示赞赏。

我在使用 matplotlib 在 python 中绘制极坐标方程时遇到问题。
\n按照我的理解,我将创建一个代表 theta 的变量..或绘图中使用的所有角度。就我而言,从 0 到 2(pi),中间有 1000 个步骤。
\n然后我应该能够输入极坐标方程 R 并绘制它。
\n我的问题是我知道这个方程*应该是一个圆。但我的代码没有绘制一个圆圈。
\n\n\n*r = 2sin\xce\xb8 + 2cos\xce\xb8
\n
这是 Wolfram alpha 产生的结果,我知道这是正确的图表,与我的结果
\n\n\n沃尔夫勒姆·阿尔法预期图
\n
\n\n我的Python代码的结果我的Python代码Python输出
\n
现在,如果我将 r 更改为:
\n\n\nr = abs(2 * np.cos(theta) + 2 * np.sin(theta))
\n
生成的图表如图所示所示
\n该图的“上半部分”是我对原始代码的期望,并且无法弄清楚为什么该图产生心形而不是圆形
\nimport numpy as np\nfrom matplotlib import pyplot as plt\n\n#Produce theta variable\ntheta = np.arange(0, 2*np.pi, .01)[1:]\n\n#Input …Run Code Online (Sandbox Code Playgroud) 我创建了以下函数,它从标量场创建标量剖面图。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
dummy_data_A = {'A': np.random.uniform(low=-3.5, high=3.5, size=(98,501)),
'B': np.random.uniform(low=-3.5, high=3.5, size=(98,501)), 'C': np.random.uniform(low=-3.5, high=3.5, size=(98,501))}
dummy_data_B = {'A': np.random.uniform(low=-3.5, high=3.5, size=(98,501)),
'B': np.random.uniform(low=-3.5, high=3.5, size=(98,501)), 'C': np.random.uniform(low=-3.5, high=3.5, size=(98,501))}
def plot_scalar_profiles(true_var, pred_var,
coordinates = ['x','y'],
x_position = None,
bounds_var = None,
norm = False ):
fig = plt.figure(figsize=(12,10))
st = plt.suptitle("Scalar fields", fontsize="x-large")
nr_plots = len(list(true_var.keys())) # not plotting x or y
plot_index = 1
for key in …Run Code Online (Sandbox Code Playgroud) 我尝试做一个非常简单的动画并用 matplotlib 保存它,但没有成功。例如,我想看到一些振荡的东西:这是我能做的最好的事情
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation
#Define x,y vectors and meshgrid with function u on it
x = np.arange(0,10,0.1)
y = np.arange(0,10,0.1)
X,Y = np.meshgrid(x,y)
u = np.sin(X + Y)
#Create a figure and an axis object for the surface
#(which by the way is not initialized, because I don't know were to)
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
#Define a kind-of animation function, imitating what I …Run Code Online (Sandbox Code Playgroud) 在通过 StackOverflow 检查了我遇到的上述错误的可能解决方案后,我发现了一些无法解决此特定问题的解决方案。\n下图显示了遇到的错误以及尝试在上绘制多个轴时获得的不良图形一个数字:
\n\n\n另外,我正在使用的数据可以在以下位置找到: https: //drive.google.com/file/d/1ZxD3BwpJfEMWWPoxu-aom_wXawMfSywk/view ?usp=sharing
\n下面是我编写的一组代码,我似乎遇到了障碍。我将不胜感激任何能够指导我实现预期输出@image2的帮助。
\nimport matplotlib.dates as md\n\n# Date already in DateTime index\ndk1 = data.loc["1991":"2000"] # selects all rows from 1991 - 2000\ndk2 = data.loc["2001":"2010"] # selects all rows from 2001 - 2010\ndk3 = data.loc["2011":"2020"] # selects all rows from 2011 - 2020\n\nplt.rcParams[\'font.size\'] = 18\n\nfig = plt.figure(figsize=(20,15)) # Create a figure for the plot\n\n# Add three axes to the plots\nax1 = plt.subplot(111) \nax2 = plt.subplot(212) \nax3 = plt.subplot(313) \n\n# Plot …Run Code Online (Sandbox Code Playgroud) python ×9
matplotlib ×5
pandas ×5
dataframe ×3
math ×3
animation ×2
datetime ×2
numpy ×2
plot ×2
data-science ×1
datatable ×1
frame-rate ×1
plotly-dash ×1
scipy ×1
seaborn ×1