我正在使用Plotly-Dash并且需要我的文本注释的字体大小来缩放视口宽度,就像我的图形那样.对于我的布局不同的头,我能够直接设置font-size: '1vw',但vw不是用于设置的接受单元font-size的style一个属性dcc.Graph分量.这是相关的追溯:
ValueError:为scatter.textfont的'size'属性收到的元素无效.无效元素包括:['1vw','1vw','1vw','1vw','1vw','1vw','1vw' ,'1vw','1vw','1vw']
Run Code Online (Sandbox Code Playgroud)The 'size' property is a number and may be specified as: - An int or float in the interval [1, inf] - A tuple, list, or one-dimensional numpy array of the above
我认为如果dcc.Graph组件可以接受视口单元(例如style = {height: 30vw, width: 30vw})并简单地将它们转换为浏览器侧的像素,那么我应该能够执行类似的转换font-size.
在Python端有没有办法以像素为单位检索视口宽度,这样我就可以为字体大小执行自己的缩放逻辑?
以下是演示此行为的示例Dash应用程序:
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
labels …Run Code Online (Sandbox Code Playgroud) 在下面的示例 Dash 应用程序中,我尝试创建具有可变行数和列数的动态布局。这种动态网格样式布局将填充各种图形,可以通过下拉菜单等进行修改。
到目前为止,我遇到的主要问题与视口单元有关,并试图适当地设置单个图形的样式以适应动态布局。例如,我正在dcc.Graph()通过视口单位修改组件的样式,其中尺寸(例如height,width可能是35vw或23vw取决于列数)。当我从3改变的列数为2,例如,height和width的dcc.Graph()部件清楚地改变,但是这种改变不会反映在实际的呈现布局,直到窗口被物理调整大小(见示例代码下面的图片) .
如何强制dcc.Graph()组件传播这些更改而不必调整窗口大小?
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.config.suppress_callback_exceptions = True
app.layout = html.Div([
html.Div(className='row', children=[
html.Div(className='two columns', style={'margin-top': '2%'}, children=[
html.Div(className='row', style={'margin-top': 30}, children=[
html.Div(className='six columns', children=[
html.H6('Rows'),
dcc.Dropdown(
id='rows',
options=[{
'label': i,
'value': i
} for i in [1,2,3,4]], …Run Code Online (Sandbox Code Playgroud) 是否有限制 HLS m3u8 播放列表播放范围的开源实现?
我可以使用hls.js库渲染视频,指定视频的开始时间并施加持续时间来识别结束时间。我的目标是限制 m3u8 播放列表的播放范围,因为我的用户会想要观看大约 3-5 小时视频播放列表中的某个特定片段(例如 8-15 秒)。我不希望我的用户能够在整个视频播放列表中进行搜索,而只是在预先指定的播放范围内进行搜索。
因此,举个例子,如果我指定的剪辑从 00:02:30(2 分 30 秒)开始,到 00:02:40(2 分 40 秒)结束,因此持续时间为 10 秒,我该如何设置视频播放器的播放范围为 00:00:00 到 00:00:10?
索引.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HLS Demo</title>
<link rel="stylesheet" href="https://cdn.plyr.io/1.8.2/plyr.css">
</head>
<body style="width: 40%; height: 40%">
<video preload="none" id="player" autoplay controls crossorigin></video>
<script src="https://cdn.plyr.io/1.8.2/plyr.js"></script>
<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.js"></script>
<script src="./script.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
myscript.js
(function () {
var video = document.querySelector('#player');
if (Hls.isSupported()) {
// ALL CONFIG OPTIONS HERE: https://github.com/video-dev/hls.js/blob/master/docs/API.md
var config = { …Run Code Online (Sandbox Code Playgroud) 我正在为Web应用程序中的渲染报告完成打印样式表,并已收到有关不同机器上的一些打印问题的通知。在标题之前添加分页符时,我注意到增加了很多空白,这似乎与分页符有关。当我将background-color: green等添加到页面的页眉或页脚时,空白显然不是由于任何一个。我作为备份的Windows 10 OS计算机和Mac OS都创建了一个打印预览文档,该文档可以像我期望的那样兑现分页符,但是另一台运行Windows 10的计算机显示了增加的空白。
更新 -遇到页面中断问题的机器之一仅在特定的WiFi连接上遇到问题。当在我的工作位置连接到WiFi时,问题似乎从他的机器上消失了,但是当在他的工作位置连接到WiFi时,问题再次出现。很奇怪
我正在申请page-break-before: always标题内容,我的网站代码如下:
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
line-height: 1.3;
}
* {
box-sizing: border-box;
}
.page-portrait {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: 2%;
margin-bottom: 2%;
position: relative;
width: 1350px;
min-height: 279mm;
padding: 30mm;
border: 1px #D3D3D3 solid;
border-radius: 5px;
background: white;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}
.report-row-preview {
min-height: 4cm;
}
.header {
margin-top: 1cm;
page-break-before: always; …Run Code Online (Sandbox Code Playgroud)所以我遇到了一些关于将 PDF 转换为 HTML 或将它们转换为文本的帖子,但是它们都是从保存到计算机的文件中处理的。有没有办法在不下载 PDF 文件本身的情况下从网页 PDF 中提取文本(因为我将通过遍历 URL 列表来为大量文件这样做)?
我也很好奇哪个是实现这一目标的最佳库。pdfkit、pdf2txt、pdfminer 等?
这是我将要处理的格式的示例网站:http : //www.arkansasrazorbacks.com/wp-content/uploads/2017/02/Miami-Ohio-Game-2.pdf
我有一个案例,我需要将给定字符串中的名称与名称数据库相匹配。下面我给出了一个非常简单的例子,说明我遇到的问题,我不清楚为什么一个案例对另一个案例有效?如果我没记错的话,extractOne() 的 Python 默认算法是 Levenshtein 距离算法。是不是因为 Clemens 的名字提供了前两个首字母,而 Gonzalez 的案例中只有一个?
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
s = ['Gonzalez, E. walked down the street.', 'Gonzalez, R. went to the market.', 'Clemens, Ko. reach the intersection; Clemens, Ka. did not.']
names = []
for i in s:
name = [] #clear name
for k in i.split():
if k[0].isupper(): name.append(k)
else: break
names.append(' '.join(name))
if ';' in i:
for each in i.split(';')[1:]:
name = [] #clear name
for k in …Run Code Online (Sandbox Code Playgroud) 我有一个很长的正则表达式,有很多交替,我希望能够将正则表达式中的每个匹配替换为自身,后跟新行('\n')。
使用 re.sub() 最有效的方法是什么?
这是一个简单的例子:
s = 'I want to be able to replace many words, especially in this sentence, since it will help me solve by problem. That makes sense right?'
pattern = re.compile(r'words[,]|sentence[,]|problem[.]')
for match in matches:
re.sub(pattern, match + '\n', match)
Run Code Online (Sandbox Code Playgroud)
我知道这个 for 循环不起作用,我只是希望澄清我想在这里解决的问题。预先感谢您的任何帮助。我可能会错过一些非常简单的东西。
我在 .kv 文件中使用弹出窗口时遇到问题。我知道弹出窗口只能有一个小部件作为其内容,但是如果我只将 GridLayout 作为包含标签和按钮的子项传递,这不应该起作用吗?
这是我的Python代码:
import kivy, LabelB
from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.properties import ObjectProperty, StringProperty
from kivy.lang import Builder
from kivy.uix.popup import Popup
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
Builder.load_file('main.kv')
class CustomPopup(Popup):
pass
class MenuScreen(Screen):
def open_popup(self):
the_popup = CustomPopup()
the_popup.open()
class SurveyScreen(Screen):
pass
sm = ScreenManager(transition=FadeTransition())
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(SurveyScreen(name='survey'))
class MainApp(App):
def build(self):
return sm
if …Run Code Online (Sandbox Code Playgroud) 鉴于以下示例df:
Other1 Other2 Name Value
0 0 1 Johnson C
1 0 0 Johnson NaN
2 1 1 Smith R
3 1 1 Smith NaN
4 0 1 Jackson X
5 1 1 Jackson NaN
6 1 1 Jackson NaN
Run Code Online (Sandbox Code Playgroud)
我希望能够NaN使用df['Value']与该行中给定名称关联的值填充值。我想要的结果如下,我知道可以这样实现:
df['Value'] = df['Value'].fillna(method='ffill')
Other1 Other2 Name Value
0 0 1 Johnson C
1 0 0 Johnson C
2 1 1 Smith R
3 1 1 Smith R
4 0 1 Jackson X
5 …Run Code Online (Sandbox Code Playgroud) 我的问题很简单,但我没有在 stackexchange 或 google 上的任何地方找到答案。在 python 的 Pandas 中,如何将具有两列的系列转换回数据框?我的系列(agggenfreq)在下面。生成它的代码是这样的:
agggenfreq=df2000[['freq','name','sex']].groupby(['name', 'sex']).sum()['freq']
Run Code Online (Sandbox Code Playgroud)
其中 df2000 是一个包含以下列的数据框:
name sex freq year agg
0 Hannah F 23071 2000 162834
1 Hannah M 25 2000 162834
2 Hannah F 20706 2001 162834
3 Hannah M 22 2001 162834
4 Hannah F 18814 2002 162834
Run Code Online (Sandbox Code Playgroud)
聚集频率:
name sex
Aaden F 5
M 2980
Aaliah F 518
Aaliya F 583
Aaliyah F 40975
M 49
Aamir M 607
Aaniyah F 741
Aanya F 954
Aaralyn F 581 …Run Code Online (Sandbox Code Playgroud) python ×7
css ×2
pandas ×2
plotly ×2
plotly-dash ×2
dataframe ×1
fuzzywuzzy ×1
hls.js ×1
html ×1
kivy ×1
m3u8 ×1
pdfminer ×1
popup ×1
print-css ×1
python-3.x ×1
regex ×1
series ×1
web-scraping ×1