2013-04-09 186 views
3

我目前有一張我的數據圖,紅色豎線標出「平均旋轉次數」的點。我想知道是否可以將「百萬分之幾百萬」點的標記更改爲藍色/黑色的十字形,並將主要/次要網格線放在兩個軸上?所有可用的在線幫助似乎都從我們沒有的模塊中提取。 另外你如何標出我已繪製成「平均旋轉次數」的紅線?蟒蛇座標軸繪圖 - matplotlib

非常感謝。

matplotlib.pyplot.scatter(millionspins,millions) 
plt.xlabel("Number of spins") 
plt.plot([averageiterations,averageiterations],[1000000,1500000],'r-') 
plt.xlim(0,max(millionspins)) 
plt.ylim(1000000,max(millions)) 
plt.ylabel("Bank") 
plt.xlim(0,max(millionspins)) 
plt.ylim(1000000,max(millions)) 
show() 

回答

1

我想你想要的是:

ax = plt.gca() 
ax.grid(True) 
ax.plot(millionspins, millions, marker='+', color='b') 

除非你需要爲了讓每個標記具有不同的大小或顏色,我建議使用plot而不是scatter,因爲它速度更快,並且以後可以更容易地對其進行修改(如果要執行動畫)。

+0

好的,謝謝你,我現在有一個更好的陰謀。你知道我會如何爲我的「百萬分之幾百萬」部分添加一個圖例嗎?而在我的傳聞中「平均旋轉」還有一點呢? – 2013-04-09 18:38:09

+0

你應該問一個關於你的傳說的新問題(或者搜索我已經回答過的現有問題)。 – tacaswell 2013-04-09 18:40:04

+0

現在排序謝謝! – 2013-04-09 18:45:49

1

使用marker='+'使marker a thin cross

plt.scatter(millionspins, millions, c='b', marker='+') 

使用plt.grid顯示網格線:

plt.grid(True, which='both') 

順便說一句,你可以使用plt.axvline創建紅色垂線。這樣一來,如果用戶重新調整了劇情,垂直線的端點不會顯示:

import matplotlib.pyplot as plt 
import numpy as np 
N = 100 
millionspins = np.random.randint(10000000, size=N) 
millions = np.random.randint(10000000, size=N) 
averageiterations = millionspins.mean() 

plt.scatter(millionspins, millions, marker='+') 
plt.axvline([averageiterations], color='r') 

plt.xlabel("Number of spins") 
plt.ylabel("Bank") 

plt.xlim(0,max(millionspins)) 
plt.ylim(1000000,max(millions)) 

plt.grid(True, which='both') 
plt.show() 

enter image description here