库:
pandas
to_datetime:它可以处理各种格式的日期和时间数据,并将其统一转换为 Pandas 可以理解和操作的内部日期时间格式。
matplotlib.pyplot
用户可以轻松地创建各种静态、动态、交互式和 3D 图形。
1. 绘制线图(plot())
x, y: 数据点的 x 和 y 坐标值。
fmt: 一个字符串,定义线型、颜色和数据点样式,如 'ro-'(红色圆圈和实线)。
linestyle 或 ls: 线的样式(如 '-'、'--'、':'、'None'、'solid'、'dashed' 等)。
color 或 c: 线的颜色。
marker: 数据点样式(如 'o'、'+'、'x' 等)。
linewidth 或 lw: 线的宽度。
label: 图例的标签。
alpha: 线的透明度(0 到 1 之间)。
2. 绘制散点图(scatter())
x, y: 数据点的 x 和 y 坐标值。
s: 数据点的大小。
c: 数据点的颜色(可以是单一颜色、颜色序列或数组)。
marker: 数据点样式。
cmap: 用于映射颜色的 Colormap 对象。
alpha: 数据点的透明度。
label: 图例的标签。
3. 绘制条形图(bar() 或 barh())
x 或 y: 条形的位置(对于 barh() 是 y 位置)。
height 或 width: 条形的高度(对于 barh() 是宽度)。
bottom 或 left: 条形基线的位置(对于 barh() 是左位置)。
color: 条形的颜色。
edgecolor: 条形边缘的颜色。
linewidth: 条形边缘的宽度。
tick_label: 坐标轴刻度标签。
label: 图例的标签。
4. 绘制直方图(hist())
x: 数据数组。
bins: 数据分箱的数量或边界。
range: 数据范围(元组),用于确定直方图的 x 轴范围。
density: 是否归一化直方图(布尔值)。
color: 条形的颜色。
edgecolor: 条形边缘的颜色。
alpha: 透明度。
label: 图例的标签。
5. 绘制饼图(pie())
x: 饼图中每个扇区的面积(通常表示比例)。
labels: 扇区的标签。
colors: 扇区的颜色。
autopct: 格式化扇区百分比字符串的函数。
explode: 用于将扇区从中心分离出来的距离数组。
shadow: 是否绘制饼图的阴影。
startangle: 饼图的起始角度。
6. 绘制箱线图(boxplot())
x: 包含数据的数组或数组列表。
notch: 是否绘制缺口箱线图。
vert: 是否垂直绘制箱线图(默认为 True)。
patch_artist: 是否填充箱体的颜色。
labels: 箱体的标签。
whis: 设定异常值的范围。
showfliers: 是否显示异常值。
boxprops: 箱体属性(如颜色、线宽等)。
7. 绘制热力图(使用 imshow() 或 pcolor())
X: 二维数组或矩阵,表示图像数据。
cmap: 颜色映射。
interpolation: 插值方法(如 'nearest'、'bilinear' 等)。
aspect: 图像的纵横比。
alpha: 透明度。
origin: 数据原点(如 'upper'、'lower')。
extent: 数据坐标的最小值和最大值,用于映射到图像坐标。
plt.annotate
s 为注释文本内容
-
xy 为被注释的坐标点
-
xytext 为注释文字的坐标位置
arrowprops = dict(facecolor = "r", headlength = 10, headwidth = 30, width = 20)
width:箭头的宽度(以点为单位)
headwidth:箭头底部以点为单位的宽度
headlength:箭头的长度(以点为单位)
shrink:总长度的一部分,从两端“收缩”
facecolor:箭头颜色
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k', lw=1, alpha=0.5)
boxstyle:方框外形
facecolor:(简写fc)背景颜色
edgecolor:(简写ec)边框线条颜色
edgewidth:边框线条大小
import tushare as ts
import pandas as pd
import matplotlib.pyplot as pl
ts.set_token('token')
p=ts.pro_api()
stock_code='NVDA'
start_date='2010-01-01'
end_date='2023-02-29'
df=p.us_daily(ts_code=stock_code,start_date=start_date,end_date=end_date)
dates=pd.to_datetime(df['trade_date'])
close_price=df['close']
pl.figure(figsize=(12,6))
pl.plot(dates,close_price,linestyle='-',color="blue")
for i,j in enumerate(close_price):
pl.annotate(j,(dates[i],close_price[i]),textcoords="offset points",xytext=(0,10),ha='center')
pl.grid(True)
pl.xlabel("date")
pl.ylabel("close price")
pl.show()