㈠ 怎麼用python計算股票
作為一個python新手,在學習中遇到很多問題,要善於運用各種方法。今天,在學習中,碰到了如何通過收盤價計算股票的漲跌幅。
第一種:
讀取數據並建立函數:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置
t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)
plt.show()
f(t)
第二種:
利用pandas裡面的方法:
import pandas as pd
a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets
第三種:
close=a['close']
rets=close/close.shift(1)-1
print rets
總結:python是一種非常好的編程語言,一般而言,我們可以運用構建相關函數來實現自己的思想,但是,眾所周知,python中裡面的有很多科學計算包,裡面有很多方法可以快速解決計算的需要,如上面提到的pandas中的pct_change()。因此在平時的使用中應當學會尋找更好的方法,提高運算速度。
㈡ python的matplotlib和pandas能連用嗎
import numpy as np
import matplotlib.pyplot as plt
X=[]
Y=[]
data = open('C:/xxx/xxx/1.txt')
for each_line in data:
(x,y)=each_line.split(' ')
X.append(x)
Y.append(y)
data.close()
plt.xlim(10,70),plt.ylim(-1000,8000)
plt.xlabel(r'$2\theta(deg.)$',fontsize=16,color='black')
plt.ylabel(r'$Intensity(a.u.)$',fontsize=16,color='black')
plt.xticks([10,20,30,40,50,60,70],
[r'$10$',r'$20$',r'$30$',r'$40$',r'$50$',r'$60$',r'$70$'],fontsize=14)
plt.yticks([])
plt.plot(X,Y,color='blue',linewidth='1.5',linestyle='-',label=r'$XXX$')
plt.legend(loc='upper right',frameon=True)
plt.savefig('C:/xxx/xxx/xxx.png',dpi=200)
plt.show()
看圖看代碼
㈢ python中使用plt.bar畫出的圖橫坐標是1-10的,我如何畫出2,4,6,8這樣空兩個的橫坐標
最簡單的柱狀代碼應該是這樣的
# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randint(0, 10, size=10)
y = np.random.randint(100, 1000, size=10)
plt.bar(x, y)
plt.show()
㈣ python matlibplot 怎樣畫圖例
用於添加圖例的函數是plt.legend(),我們通過例子來對其進行介紹。
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
#多數據並列柱狀圖
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = np.arange(6)
y1 = [23,5,14,27,18,14]
y2 = [10,27,25,18,23,16]
tick_label = ["A","B","C","D","E","F"]
bar_width = 0.35
plt.bar(x,y1,bar_width,align="center",label="班級A",alpha=0.5)
plt.bar(x+bar_width,y2,bar_width,align="center",label="班級B",alpha=0.5)
plt.xlabel("成績等級")
plt.ylabel("人數")
plt.xticks(x+bar_width/2,tick_label)
plt.legend(bbox_to_anchor=(1,1),#圖例邊界框起始位置
loc="upper right",#圖例的位置
ncol=1,#列數
mode="None",#當值設置為「expend」時,圖例會水平擴展至整個坐標軸區域
borderaxespad=0,#坐標軸和圖例邊界之間的間距
title="班級",#圖例標題
shadow=False,#是否為線框添加陰影
fancybox=True)#線框圓角處理參數
plt.show()
效果如圖所示
㈤ 新手求教!!!!python 從文件中讀取時間序列,例如格式為171588表示17:15:88等,然後讀取數據畫圖
用xticks命令,http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks
例子:
import matplotlib.pyplot as plt
t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15',
'20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35',
'40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55']
t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152,
172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177,
150, 130, 131, 111, 99, 143, 194]
plt.bar(range(len(t12)), t12, align='center')
plt.xticks(range(len(t12)), t11, size='small')
plt.show()
㈥ Python的 matplotlib畫圖,怎麼把子圖的每個橫坐標顯示出來
ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)
創建畫布和子圖。
nrows和ncols表示將畫布分割成幾行幾列 ,
sharex和sharey表是共用xy軸的設置。
squeeze bool
a.默認參數為True:額外的維度從返回的Axes(軸)對象中擠出,對於N*1或1*N個子圖,返回一個1維數組,對於N*M,N>1和M>1返回一個2維數組。
b.為False,不進行擠壓操作:返回一個元素為Axes實例的2維數組,即使它最終是1x1。
subplot_kw:字典類型,可選參數。把字典的關鍵字傳遞給add_subplot()來創建每個子圖。
subplot_kw:字典類型,可選參數。把字典的關鍵字傳遞給add_subplot()來創建每個子圖。
gridspec_kw:字典類型,可選參數。把字典的關鍵字傳遞給GridSpec構造函數創建子圖放在網格里(grid)。
**fig_kw:把所有詳細的關鍵字參數傳給figure()函數。
可見你沒有辦法單獨設置某個子圖的ax的。
㈦ python中plot怎麼設置橫縱坐標名稱
用plot畫二維圖像時,默認情況下的橫坐標和縱坐標顯示的值有時達不到自己的需求,需要藉助xticks()和yticks()分別對橫坐標x-axis和縱坐標y-axis進行設置。
import numpy as np
import matplotlib.pyplot as plt
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.show()
此時的x軸和y軸都是只顯示偶數,其它的奇數未顯示,這樣在展示實驗效果或放入文章中都會影響其可讀性。
為了設置坐標軸的值,增加其可讀性,有多種方法。這里介紹的是matplotlib的函數xticks()和yticks()。
(7)pltxticks股票數據擴展閱讀
基本用法:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成x軸上的數據:從-3到3,總共有50個點
x = np.linspace(-1, 1, 50)
# 定義一個線性方程
y1 = 2 * x + 1
# 定義一個二次方程
y2 = x ** 2
# 設置x軸的取值范圍為:-1到2
plt.xlim(-1, 2)
# 設置y軸的取值范圍為:-1到3
plt.ylim(-1, 3)
# 設置x軸的文本,用於描述x軸代表的是什麼
plt.xlabel("I am x")
# 設置y軸的文本,用於描述y軸代表的是什麼
plt.ylabel("I am y")
plt.plot(x, y2)
# 繪制紅色的線寬為1虛線的線條
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
# 顯示圖表
plt.show()
㈧ python matplot 的xticks怎麼用
y軸默認會有數值,你是需要自定義嗎可以使用yticks函數,第一個參數是y軸的位置,第二個參數是具體標簽importmatplotlib.pyplotaspltimportnumpyasnpx=np.arange(0,6)y=x*xplt.plot(x,y,marker='o')plt.yticks(y,['a','b','c','d','e','f'])
㈨ python的matplotlib的pyplot模塊,plt.yticks()設置刻度不能超過用來做圖的數據值了
python的matplotlib的pyplot模塊,plt.yticks()設置刻度不能超過用來做圖的數據值了。比較專業,要不然你可以問下老師或者專業人士。