小编Kri*_*673的帖子

如何在matplotlib中使colorbar一端的颜色变暗?

假设我有以下情节:

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 的颜色。

我在搜索时发现了一点,但问题(和解决方案)是关于使所有颜色变暗,这不是我想要的。

python colors matplotlib

9
推荐指数
2
解决办法
7228
查看次数

如何将熊猫数据帧逐行写入 CSV 文件,一次一行?

我有一个大约 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时间。如何解决这个问题?

python read-write writetofile pandas

8
推荐指数
1
解决办法
1万
查看次数

是否有单行从每个项目的多个实例的矩阵中找到最小的唯一实体?

比如说,我有一个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中执行此操作.

matlab matrix

5
推荐指数
1
解决办法
94
查看次数

如何在Jupyter笔记本(iPython)中并排显示2张图像?

我想在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张图像?

python image ipython jupyter-notebook

5
推荐指数
3
解决办法
7157
查看次数

如何在破折号应用程序中延迟用户对文本框的输入?

我正在学习构建一个简单的破折号应用程序。它有一个用于用户输入的文本框,这取决于它将绘制图形。

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 dashboard data-visualization plotly-dash

5
推荐指数
1
解决办法
679
查看次数

如何更好地可视化给定文本的单词关联?

我特别想要的是根据它们在文档中的显示方式,可视化与文档中名词相关的所有动词和形容词。

我在 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)

python plot data-visualization graph networkx

5
推荐指数
1
解决办法
1141
查看次数

如何在已经存在的绘图中添加颜色条?

我有以下图表,其数据(位置和颜色值)来自外部来源:

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)

python data-visualization matplotlib plotly plotly-python

5
推荐指数
1
解决办法
437
查看次数

在浏览器 Web 应用程序中同时对两个视频进行姿势检测不起作用

我编写了以下 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)

opencv computer-vision flask python-3.x plotly-dash

5
推荐指数
1
解决办法
3469
查看次数

如何在MATLAB中有效地比较两个向量中的元素而不使用循环?

假设我有一个矩阵,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)

matlab vectorization

3
推荐指数
1
解决办法
125
查看次数

快速提取另一个向量中的索引分组的向量中元素的频率?

假设我有一个矩阵,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)

arrays matlab vectorization

3
推荐指数
1
解决办法
94
查看次数