㈠ 怎么用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()设置刻度不能超过用来做图的数据值了。比较专业,要不然你可以问下老师或者专业人士。