2016-04-17 32 views
0
import random 
import matplotlib.pyplot as plt 

num1 = 30 
num3 = [4000,3000,1500,9000,2500,8000,1200,800,900,1000,5400,9500,1100,3400,8100, 
     5500,1200,3830,2311,9999] 
num2 = [] 
for i in range (len(num3)): 
    num2.append(random.randrange(0,45)) 
print(num2) 

plt.axvline(num1,0,color="r") 
plt.scatter(num2, num3) 

代碼運行良好。它沒有問題。我想知道如何獲得框正是它從下面的圖片說:需要使用matplotlib來計算LHS和RHS點的圖框內的盒子

enter image description here

一旦你運行代碼,你會看到類似的圖像,而不箱。紅線上的點被認爲是在RHS中。我用excel製作了這個圖表來展示我想要的東西。而且,你只能使用matplotlib。

我可能會需要下面數

LHS_count = 0 
for value in num2: 
    if value < num1: 
     LHS_count += 1 
     print(LHS_count) 
RHS_count = 0 
for value in num2: 
    if value >= num1: 
     RHS_count += 1 
     print(RHS_count) 

回答

0

代碼我會建議使用numpy的這樣的事情

import matplotlib.pyplot as plt 
import numpy as np 

vl_pos = 30 
y = np.array([4000,3000,1500,9000,2500,8000,1200,800,900,1000,5400,9500,1100,3400,8100, 
     5500,1200,3830,2311,9999]) 

x = np.random.random(y.shape) * 45 

lhs = (x < vl_pos).sum() 
rhs = (x >= vl_pos).sum() 
lhs,rhs 

txt = ("lhs: %s\n" 
     "rhs: %s"%(lhs,rhs)) 

f,a = plt.subplots() 
a.axvline(vl_pos,color="r") 
a.scatter(x, y) 
bbox =dict(facecolor = 'w') 
a.text(0.8, 0.8, txt, bbox = bbox, transform = a.transAxes) 
+0

我不能使用numpy的,因爲原來的代碼我是根據如果我想繪製matplotlib將如何使用。更改該代碼是不可能的。這是太多的工作。我會很感激,如果你使用matplotlib爲我做。 – Ted

+0

我不太明白。在我的例子中,繪圖是使用matplotlib完成的。 Numpy用於處理數據。由於numpy是matplotlib的依賴關係,因此您應該在系統上使用它。 – Hagne

相關問題