小编zac*_*ha2的帖子

Python极坐标图:绘制与角度对应的值

我正在尝试绘制以不同角度记录的传感器数据。

 import pandas as pd
 import matplotlib.pyplot as plt

 #create dataframe, each row contains an angle and a corresponding value
 df = pd.DataFrame(columns = ["angle","value"])
 df.angle = [0,5,10,15,20,25,30,35,40,45,50,55,60]
 df['value'] = df.apply(lambda row: 100 -row.angle/2 , axis=1)
 print(df)

 #plotting
 plt.polar(df['angle'].values,df['value'].values)
 plt.show()
Run Code Online (Sandbox Code Playgroud)

这将返回:

在此输入图像描述

但我需要一个图来显示 0 度时的值为 100,5 度时的值为 97.5,依此类推。

python matplotlib

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

熊猫堆叠数据框

我有一个数据框,看起来像:

sensorId                   1      2      3   

9b:f3:55:19:00:4b:12:00    1      7      8    
bf:f3:55:19:00:4b:12:00    6      5      9   
da:f3:55:19:00:4b:12:00    1      1      2  
Run Code Online (Sandbox Code Playgroud)

我想用以下结构重构为数据框:

 sensorId                 y
 9b:f3:55:19:00:4b:12:00  1
 9b:f3:55:19:00:4b:12:00  7
 9b:f3:55:19:00:4b:12:00  8
 bf:f3:55:19:00:4b:12:00  6
 bf:f3:55:19:00:4b:12:00  5
 bf:f3:55:19:00:4b:12:00  9
 da:f3:55:19:00:4b:12:00  1
 da:f3:55:19:00:4b:12:00  1
 da:f3:55:19:00:4b:12:00  2
Run Code Online (Sandbox Code Playgroud)

我尝试使用df.stack(),但结果并不令人满意,因为它返回了pd.series:

9b:f3:55:19:00:4b:12:00  1      1
                         2      7
                         3      8
bf:f3:55:19:00:4b:12:00  1      6
                         2      5
                         3      9
da:f3:55:19:00:4b:12:00  1      1
                         2      1
                         3      2
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
44
查看次数

matplotlib.patches:具有多种颜色的一个补丁

我可以这样创建一个带有每个类别颜色的自定义图例:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

#one color per patch
#define class and colors
colors = ['#01FF4F', '#FFEB00', '#FF01D7', '#5600CC']
categories = ['A','B','C','D']
#create dict
legend_dict=dict(zip(categories,colors))
#create patches
patchList = []
for key in legend_dict:
        data_key = mpatches.Patch(color=legend_dict[key], label=key)
        patchList.append(data_key)

#plotting
plt.gca()
plt.legend(handles=patchList,ncol=len(categories), fontsize='small')
plt.show()
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个图例,其中每个补丁都由 n 种颜色组成。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

 #multiple colors per patch
 colors = [['#01FF4F','#01FF6F'], ['#FFEB00','#FFEB00'], ['#FF01D7','#FF01D7','#FF01D7'], ['#5600CC']]
 categories = ['A','B','C','D']
 #create dict
 legend_dict=dict(zip(categories,colors))
 print(legend_dict)
Run Code Online (Sandbox Code Playgroud)

A 类补丁的颜色应为“#01FF4F”和“#01FF6F”。对于 B 类,它是“#FFEB00”和“#FFEB00”等等。

python matplotlib

2
推荐指数
1
解决办法
1662
查看次数

从3个列表中制作数据框/ numpy数组

我正在尝试从这三个列表中创建一个矩阵或数据框:

x = ["col1","col2","col3","col4","col5","col6","col7","col8","col9","col10"]
y = ["a","b","c"]
z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
Run Code Online (Sandbox Code Playgroud)

我的目标是获得一个看起来像这样的数据框:

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
a   1    2   3    4    5   6     7    8    9    10
b   11   12  13   14   15  16    17   18   19   20 
c   21   22  23   24   25  26    27   28   29   30
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

标签 统计

python ×4

matplotlib ×2

pandas ×2

numpy ×1