我正在尝试使用seaborn 设置堆叠的顺序histplot。下面的情节很好,但我希望改变顺序,以便Up, Down, Left, Right从左到右阅读时可以读取。
尝试通过order或时出现错误col_order。
raise AttributeError('{!r} object has no property {!r}'
AttributeError: 'Rectangle' object has no property 'order'
Run Code Online (Sandbox Code Playgroud)
不过,在未传递订单时它工作正常。
import pandas as pd
import seaborn as sns
df = pd.DataFrame({
'Label' : ['A','B','C','B','B','C','C','B','B','A','C','A','B','A','C','A'],
'Item' : ['Up','Left','Up','Left','Down','Right','Up','Down','Right','Down','Right','Up','Up','Right','Down','Left'],
})
g = sns.histplot(data = df,
x = 'Item',
hue = 'Label',
#order = ['Up','Down','Left','Right'],
multiple = 'fill',
shrink = 0.8,
discrete = True,
legend = True,
)
Run Code Online (Sandbox Code Playgroud) 我认为这将是Excel中一个易于使用的功能,但实现一个简单的过程来限制对较大工作簿中的特定工作表的访问是非常困难的.
有一些方法可以提示初始密码来打开同一工作簿的各种版本.但我想让所有用户都保持相同的工作簿,但限制访问某些工作表.当然有密码保护功能,要求用户输入密码才能查看表格.而不是基于不同的用户创建同一工作簿的多个版本.
我尝试了以下但它没有提示密码来访问工作表
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheets As String, Response As String
Dim MySheet As Worksheet
MySheet = "COMMUNICATION"
If ActiveSheet.Name = MySheet Then
ActiveSheet.Visible = False
Response = InputBox("Enter password to view sheet")
If Response = "MyPass" Then
Sheets(MySheet).Visible = True
Application.EnableEvents = False
Sheets(MySheet).Select
Application.EnableEvents = True
End If
End If
Sheets(MySheet).Visible = True
End Sub
Run Code Online (Sandbox Code Playgroud)
我这样做了吗?
我希望包含一个带有回调函数的下拉栏,允许用户在较小的区域内显示特定的点。最初,我想使用所有点几何数据作为默认值。然后,我的目标是包含一个下拉栏和回调函数,该函数从该主 df 返回较小的子集。这是通过合并特定多边形区域内的点数据来完成的。
使用下面的方法,默认 df 被标记为gdf_all。这包含一个大区域的点数据。较小的多边形文件是gdf_poly. 其中包括非洲和欧洲大陆。它们在函数中使用,仅在点数据在多边形形状内相交时返回点数据。
我已经对下面的输出进行了硬编码。1) 使用gdf_all2) 使用非洲大陆的子集。
理想情况下,下拉栏将用于输入要在图中可视化的所需点数据。
import geopandas as gpd
import plotly.express as px
import dash
from dash import dcc
from dash import html
import dash_bootstrap_components as dbc
# point data
gdf_all = gpd.read_file(gpd.datasets.get_path("naturalearth_cities"))
# polygon data
gdf_poly = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
gdf_poly = gdf_poly.drop('name', axis = 1)
gdf_all['LON'] = gdf_all['geometry'].x
gdf_all['LAT'] = gdf_all['geometry'].y
# subset African continent
Afr_gdf_area = gdf_poly[gdf_poly['continent'] == 'Africa'].reset_index(drop = True)
# subset European continent
Eur_gdf_area = …Run Code Online (Sandbox Code Playgroud) 我有一个工作script是auto-copies具体的cells从主Sheet到二级Sheet.script如果将Master设置为a range但在转换为a时返回错误,则此方法正常table.
脚本:
Option Explicit
Sub FilterAndCopy()
Dim rng As Range, sht1 As Worksheet, sht2 As Worksheet
Set sht1 = Worksheets("SHIFT LOG")
Set sht2 = Worksheets("FAULTS RAISED")
sht2.UsedRange.ClearContents
With Intersect(sht1.Columns("B:BP"), sht1.UsedRange)
.Cells.EntireColumn.Hidden = False ' unhide columns
If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
'within B:BP, column B is the first column
.AutoFilter field:=1, Criteria1:="Faults Raised"
'within B:BP, Columns B:C, AC:AE, BP are referenced as .Columns …Run Code Online (Sandbox Code Playgroud) 我知道关于将 JSON 文件转换为 pandas df 有一些问题,但没有任何效果。具体来说,JSON 请求当前日期信息。我试图返回对应的表格结构,Data但我只得到第一个dict对象。
我将在下面列出当前的尝试和结果输出。
import requests
import pandas as pd
import json
get_session_url = "https://qships.tmr.qld.gov.au/webx/"
get_data_url = "https://qships.tmr.qld.gov.au/webx/services/wxdata.svc/GetDataX"
get_data_query = {
"token": None,
"reportCode": "MSQ-WEB-0001",
"dataSource": None,
"filterName": "Today",
"parameters": [{
"__type": "ParameterValueDTO:#WebX.Core.DTO",
"sName": "DOMAIN_ID",
"iValueType": 0,
"aoValues": [{"Value": -1}],
}],
"metaVersion": 0,
}
sess = requests.session()
sess.get(get_session_url).raise_for_status()
my_dict = sess.post(get_data_url, json = get_data_query).json()
print(my_dict)
Run Code Online (Sandbox Code Playgroud)
输出:
{'d': {'__type': 'DataSetDTO:#WebX.Core.DTO', 'BuildVersion': '7.0.0.12590', 'ReportCode': 'MSQ-WEB-0001', 'Tables': [{'__type': 'DataTableDTO:#WebX.Core.DTO', 'BuildVersion': '7.0.0.12590', 'AsOfDate': '14:36 on Jan …Run Code Online (Sandbox Code Playgroud) 我试图将每第二行乘以 -1,但仅在指定的列中。使用下面,我希望将列中的每第二行乘以c-1。
df = pd.DataFrame({
'a' : [2.0,1.0,3.5,2.0,5.0,3.0,1.0,1.0],
'b' : [1.0,-1.0,3.5,3.0,4.0,2.0,3.0,2.0],
'c' : [2.0,2.0,2.0,2.0,-1.0,-1.0,-2.0,-2.0],
})
df['c'] = df['c'][::2] * -1
Run Code Online (Sandbox Code Playgroud)
预期输出:
a b c
0 2.0 1.0 2.0
1 1.0 -1.0 -2.0
2 3.5 3.5 2.0
3 2.0 3.0 -2.0
4 5.0 4.0 -1.0
5 3.0 2.0 1.0
6 1.0 3.0 -2.0
7 1.0 2.0 2.0
Run Code Online (Sandbox Code Playgroud) 我的目标是返回一定半径内点的总数和平均距离。使用下面,半径的中心是 2,中心由 确定X2, Y2。
总会有一个点与 位于相同的位置X2, Y2。我希望从分析中忽略这一点。
注意:我希望该函数能够及时处理多个点。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({
'Time' : [1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3],
'Item' : ['A','B','C','D','E','F','A','B','C','D','E','F','A','B','C','D'],
'x' : [4,5,8,3,6,2,6,4,3.5,2,4,6,6,2,4,4],
'y' : [-2,0,-2,0,0,4,-1,-2,-2,4,-3,2,-2,0,-2.5,4],
'X2' : [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],
'Y2' : [-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2],
})
sq_dist = (df['X2'] - df['x']) ** 2 + (df['Y2'] - df['y']) ** 2
# count of points within radius
count = ((sq_dist <= 2 ** 2).astype(int)
.groupby([df['Time']])
.sum()
.reset_index()
.fillna(0)
)
# avg_distance between points within radius
df['dist'] …Run Code Online (Sandbox Code Playgroud) python ×5
pandas ×3
excel ×2
vba ×2
callback ×1
choropleth ×1
copy ×1
json ×1
plotly ×1
plotly-dash ×1
range ×1
restriction ×1
seaborn ×1