假设我有以下情节:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(1)
data = np.sort(np.random.rand(8,12))
plt.figure()
c = plt.pcolor(data, edgecolors='k', linewidths=4, cmap='Blues', vmin=0.0, vmax=1.0)
plt.colorbar(c)
plt.show()
Run Code Online (Sandbox Code Playgroud)
颜色条具有分配给最低值的(几乎)白色。怎么让它稍微暗一点?我希望它不是从白色到蓝色的颜色条,而是从浅蓝色到深蓝色。例如,值 0 的颜色应该类似于上图中值 0.4 的颜色。
我在搜索时发现了这一点,但问题(和解决方案)是关于使所有颜色变暗,这不是我想要的。
我有一个大约 100 万个地址的列表,以及一个查找它们的纬度和经度的函数。由于某些记录格式不正确(或出于任何原因),有时该函数无法返回某些地址的纬度和经度。这将导致 for 循环中断。因此,对于成功检索到纬度和经度的每个地址,我想将其写入输出 CSV 文件。或者,也许不是逐行写入,以小块大小写入也可以。为此,我df.to_csv在“追加”模式 ( mode='a') 中使用,如下所示:
for i in range(len(df)):
place = df['ADDRESS'][i]
try:
lat, lon, res = gmaps_geoencoder(place)
except:
pass
df['Lat'][i] = lat
df['Lon'][i] = lon
df['Result'][i] = res
df.to_csv(output_csv_file,
index=False,
header=False,
mode='a', #append data to csv file
chunksize=chunksize) #size of data to append for each loop
Run Code Online (Sandbox Code Playgroud)
但问题在于,它正在为每个附加打印整个数据帧。因此,对于n行,它将写入整个数据帧n^2时间。如何解决这个问题?
比如说,我有一个A包含2列的矩阵- 第1列包含项目ID,第2列包含其权重:
A = [
3 5
2 3
2 5
1 4
3 4
2 6
1 9
3 2 ];
Run Code Online (Sandbox Code Playgroud)
我希望输出如下:
items = [
1 4
2 3
3 2];
Run Code Online (Sandbox Code Playgroud)
我要写的代码是:
items(:,1)=unique(A(:,1));
for i=1:size(items,1)
temp=A(A(:,1)==items(i,1),:);
items(i,2)=min(temp(:,2));
end
Run Code Online (Sandbox Code Playgroud)
该items矩阵是这里所需的输出.
我想知道是否有一个单行代码在MATLAB中执行此操作.
我想在iPython中并排显示2个PNG图像。
我要做的代码是:
from IPython.display import Image, HTML, display
img_A = '\path\to\img_A.png'
img_B = '\path\to\img_B.png'
display(HTML("<table><tr><td><img src=img_A></td><td><img src=img_B></td></tr></table>"))
Run Code Online (Sandbox Code Playgroud)
但是它不输出图像,而只显示两个图像的占位符:
我也尝试了以下方法:
s = """<table>
<tr>
<th><img src="%s"/></th>
<th><img src="%s"/></th>
</tr></table>"""%(img_A, img_B)
t=HTML(s)
display(t)
Run Code Online (Sandbox Code Playgroud)
但是结果是一样的:
这些图像肯定在路径中,因为我通过在弹出窗口中显示它们进行了验证:
plt.imshow(img_A)
plt.imshow(img_B)
Run Code Online (Sandbox Code Playgroud)
并且它们确实出现在弹出窗口中。
如何在iPython中并排显示2张图像?
我正在学习构建一个简单的破折号应用程序。它有一个用于用户输入的文本框,这取决于它将绘制图形。
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash()
app.layout = html.Div(children=[
html.Div(children='User input:'),
dcc.Input(id='input', value='', type='text'),
html.Div(id='output-graph'),
])
@app.callback(
Output(component_id='output-graph', component_property='children'),
[Input(component_id='input', component_property='value')]
)
def update_value(input_data):
return dcc.Graph(
### Do something ###
)
Run Code Online (Sandbox Code Playgroud)
问题是,由于 dash 在后台使用 react,所以只要输入输入,它就会在控制台中不断抛出错误,直到到达有效输入为止。例如,如果我正在为一个股票代码(例如 AAPL)绘制股票价格,它会在输入每个字母后抛出错误,直到输入所有 4 个有效字母。
我想在应用程序尝试读取输入之前用户输入最后一个字符后添加 1 秒的延迟。我怎么做?我一直在网上搜索这个,但找不到任何东西。
此外,如果 1 秒延迟后的输入是无效输入(例如,AAPF 而不是 AAPL),它应该返回类似的内容, Wrong input, please enter again.
我特别想要的是根据它们在文档中的显示方式,可视化与文档中名词相关的所有动词和形容词。
我在 Python 中找不到任何东西,所以我在下面列出了自己的基本函数。但是,可视化留下了一些不足之处:
import nltk
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
def word_association_graph(text):
nouns_in_text = []
for sent in text.split('.')[:-1]:
tokenized = nltk.word_tokenize(sent)
nouns=[word for (word, pos) in nltk.pos_tag(tokenized) if is_noun(pos)]
nouns_in_text.append(' '.join([word for word in nouns if not (word=='' or len(word)==1)]))
nouns_list = []
is_noun = lambda pos: pos[:2] == 'NN'
for sent in nouns_in_text:
temp = sent.split(' ')
for word in temp:
if word not in nouns_list: …Run Code Online (Sandbox Code Playgroud) 我有以下图表,其数据(位置和颜色值)来自外部来源:
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
data = go.Scatter({
'hoverinfo': 'text',
'marker': {'color': ['rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(30,136,229,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(30,136,229,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(101,103,181,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(101,103,181,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(101,103,181,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(101,103,181,1.0)', 'rgba(245,39,87,1.0)', 'rgba(245,39,87,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(173,71,134,1.0)', 'rgba(101,103,181,1.0)', 'rgba(173,71,134,1.0)', 'rgba(101,103,181,1.0)', 'rgba(173,71,134,1.0)', 'rgba(245,39,87,1.0)', 'rgba(101,103,181,1.0)', 'rgba(101,103,181,1.0)', 'rgba(245,39,87,1.0)', …Run Code Online (Sandbox Code Playgroud) 我编写了以下 Web 应用程序来对两个视频执行姿势检测。例如,其想法是在第一个中提供基准视频,在第二个中提供用户视频(预先录制的视频或他们的网络摄像头视频),然后比较两者的动作。
import dash, cv2
import dash_core_components as dcc
import dash_html_components as html
import mediapipe as mp
from flask import Flask, Response
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
class VideoCamera(object):
def __init__(self, video_path):
self.video = cv2.VideoCapture(video_path)
def __del__(self):
self.video.release()
def get_frame(self):
with mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5) as pose:
success, image = self.video.read()
# Recolor image to RGB
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image.flags.writeable = False
# Make detection
results = pose.process(image)
# Recolor back to BGR
image.flags.writeable = True
image = cv2.cvtColor(image, …Run Code Online (Sandbox Code Playgroud) 假设我有一个矩阵,A其第一列包含重复项目ID,第二列包含重量.
A= [1 40
3 33
2 12
4 22
2 10
3 6
1 15
6 29
4 10
1 2
5 18
5 11
2 8
6 25
1 14
2 11
4 28
3 38
5 35
3 9];
Run Code Online (Sandbox Code Playgroud)
我现在想要找出每个实例A及其相关最小权重的差异.为此,我创建了一个矩阵B,其第一列包含第1列中的唯一ID,第2列包含从A第2列中找到的相关最小权重A.
B=[1 2
2 8
3 6
4 10
5 11
6 25];
Run Code Online (Sandbox Code Playgroud)
然后,我想在第3列中存储A每个条目的差异及其相关的最小权重.
A= [1 40 38
3 33 27
2 12 4
4 22 …Run Code Online (Sandbox Code Playgroud) 假设我有一个矩阵,A其第一列包含一些项ID,第二列包含0或1.
A=[3 1
1 0
4 0
3 0
1 1
2 1
3 1
4 0
2 0
4 1
3 1
4 0
2 1
1 1
2 0];
Run Code Online (Sandbox Code Playgroud)
我想找到哪个项目ID拥有最多1的,并从A提取其条目,一个接一个.所以,我做的事情是这样的,我做一个矩阵B提取所有从A 1项,找到最频繁出现项目ID,freq_item{1}在B,然后从提取所有条目A该ID的.然后,删除最频繁项目的所有实例,并搜索下一个最常用的项目.如果两个或多个项目具有相同数量的1,选择具有1的的更大的比例:
B = A(A(:,2)==1,:);
for i=1:size(unique(A(:,1)),1)
freq_item{i} = A(A(:,1)==mode(B(:,1)),:);
B = B(B(:,1)~=mode(B(:,1)),:);
end
Run Code Online (Sandbox Code Playgroud)
所以,输出是:
freq_item{1,1}=[3 1
3 0
3 1
3 1]
freq_item{1,2}=[1 0
1 1
1 1]
freq_item{1,3}=[2 1
2 0
2 1
2 0]
freq_item{1,4}=[4 0 …Run Code Online (Sandbox Code Playgroud) python ×6
matlab ×3
matplotlib ×2
plotly-dash ×2
arrays ×1
colors ×1
dashboard ×1
flask ×1
graph ×1
image ×1
ipython ×1
matrix ×1
networkx ×1
opencv ×1
pandas ×1
plot ×1
plotly ×1
python-3.x ×1
read-write ×1
writetofile ×1