咖啡价格分析

news/2024/11/28 17:56:59/

一、数据概览

咖啡是一种用烘焙过的咖啡豆、咖啡属某些开花植物的浆果种子调制而成的饮料。 从咖啡果实中分离出种子,生产出一种稳定的、未经烘焙的生咖啡。 然后将种子进行烘焙,这一过程将它们转化为一种可消费的产品:焙烤咖啡,将其磨成细颗粒,通常在热水中浸泡,然后过滤,形成一杯咖啡。

咖啡价格数据从2000年1月2022年5月。

在本例中我们使用pandas、pyplot、seaborn进行数据可视化,绘制折线图、柱状图、散点图,我们可以观察1、日、月、季度、年 咖啡价格,Open-High-Low-Close-Vol每日咖啡价格,Open\High\Low\Close\Vol,Low-Close,High-Close,Open-Close关系。

plt.plot() kind的参数:

  1. "area"用于面积图。
  2. "bar"用于垂直条形图。
  3. "barh"用于水平条形图。
  4. "box"用于箱形图。
  5. "hexbin"用于六边形图。
  6. "hist"用于直方图。
  7. "kde"用于核密度估计图。
  8. "density"是"kde"的别名。
  9. "line"用于折线图。
  10. "pie"用于饼图。
  11. "scatter"用于散点图

二、数据预处理

import pandas as pddf = pd.read_csv('./data/coffee.csv')
# df.info()# print(df.shape)  # (5671, 7)# print(df.describe())
# print(df.columns) #Index(['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Currency'], dtype='object')
# print(len(df.Date.unique())) #5671
# print(df.Currency.unique()) #['USD']

三、数据可视化

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as snsplt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签
plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_csv('./data/coffee.csv')df.Date = pd.to_datetime(df.Date, yearfirst=True)
df.set_index('Date', inplace=True)

1、日、月、季度、年 咖啡价格

fig, axes = plt.subplots(2, 2, figsize=[15, 7])
fig.suptitle('咖啡价格', size=24)# 每天的价格
axes[0, 0].plot(df.Close.resample('D').mean())
axes[0, 0].set_title("日", size=16)# 每个月的价格
axes[0, 1].plot(df.Close.resample('M').mean())
axes[0, 1].set_title("月", size=16)
# 每个季度的价格
axes[1, 0].plot(df.Close.resample('Q').mean())
axes[1, 0].set_title('季度', size=16)# 每年的价格
axes[1, 1].plot(df.Close.resample('A').mean())
axes[1, 1].set_title('年', size=16)plt.tight_layout()
plt.show()

2、Open-High-Low-Close-Vol每日咖啡价格

df["Vol"] = df["Volume"] / 100
df["Open"].plot(label="Open", color="#00A505", linewidth=1, figsize=(15, 5))
df["High"].plot(label="High", color="#F54974", linewidth=1, figsize=(15, 5))
df["Low"].plot(label="Low", color="#E8C0FD", linewidth=1, figsize=(15, 5))
df["Close"].plot(label="Close", color="#1CACDB", linewidth=0.75, figsize=(15, 5))
df["Vol"].plot(label="Volume", color="#0000C0", alpha=0.55, linewidth=0.75, figsize=(15, 5))plt.grid(axis="y", color="#000000")
plt.title("Open-High-Low-Close-Vol每日咖啡价格")
plt.xlabel("年")
plt.ylabel("USD")
plt.legend(loc=2)
plt.savefig(r'.\result\Open-High-Low-Close-Vol每日咖啡价格.png')
plt.show()

3、Open\High\Low\Close\Vol

def sns_displotbins(df, x, bins):sns.displot(df, x=x, bins=bins)plt.title(x)plt.tight_layout()plt.show()def sns_displot(df, x):sns.displot(df, x=x)plt.title(x)plt.tight_layout()plt.show()sns_displotbins(df, 'Open', 10)
# sns_displotbins(df, 'High', 10)
# sns_displotbins(df, 'Low', 10)
# sns_displotbins(df, 'Close', 10)
# sns_displotbins(df, 'Volume', 10)sns_displot(df, 'Open')
# sns_displot(df, 'High')
# sns_displot(df, 'Low')
# sns_displot(df, 'Close')
# sns_displot(df, 'Volume')

4、Low-Close,High-Close,Open-Close关系

df.plot(x="Low", y="Close", kind="scatter", color="#1CD89D", alpha=0.3)  # 散点图
plt.xlabel("Low")
plt.ylabel("Close")
plt.show()df.plot(x="High", y="Close", kind="scatter", color="#0ABF04", alpha=0.5)  # 核密度估计图
plt.xlabel("High")
plt.ylabel("Close")
plt.show()df.plot(x="Open", y="Close", kind='scatter', color="#ED5894", alpha=0.5)  # 折线图
plt.xlabel("Open")
plt.ylabel("Close")
plt.show()


http://www.ppmy.cn/news/155679.html

相关文章

电烤箱资料供大家参考

电烤箱资料供大家参考 烤面包机烤箱主要用于烘烤,烤和加热食物。典型的最近的两个切片烤面包机表示任何地方从600到1200瓦,可从1至3分钟举杯。经常,烤箱用来作为一个标准炉的替代品,因为它升温快,允许它来烤烤和&#…

阿里云ACA证书有什么用?

阿里云认证分为ACA ACP ACE。其实应用的话不用太考虑行业,从就业角度来看可以考虑考虑岗位。 阿里云职业认证将分为ACA(助理工程师)、ACP(认证工程师)、ACE(认证高级工程师)三个种类,将分别证明用户具备不同等级的上云能力。 ACA(助理工程师)&#xff1…

电路板焊接技巧实践(没有电烤箱条件下)

焊接整体思路 先内后外,先低后高。需要注意焊接元件的方向,布线原理 焊锡膏和热风枪使用注意 配合使用热风枪时,不推荐稀的焊锡膏(容易被吹走),需要注意多个元件是否能同时固定焊接;若不能就…

Spring中的RestTemplate传输数组参数进行请求

也可以使用使用字符串拼接实现集合数组传输请求,此方法需要接受参数接口也进行处理 下面是用map保存数组然后传输 private String userNick "zym";private ArrayList<Long> numIids Lists.newArrayList(5565565447L, 9542314524L);private RestTemplate rest…

信息收集(python篇)-小迪笔记篇

IP&whois&系统指纹获取代码段-外网 CDN&子域名&端口扫描&交互代码段-外网 ip 查询-socket def ip_check(url): ipsocket.gethostbyname(url) print(ip)whois 查询-模块库获取 def whois_check(url): datawhois(url) print(data)CDN 判断-利用返回 IP 数目…

Python开发 CDN查询子域名查询

import socket import os import sys import time import requests from bs4 import BeautifulSoup from urllib.parse import urlparse#获取ip地址 def get_ip(ip):data socket.gethostbyname(ip)print(data)return data#端口检测状态21/tcp FTP 文件传输协议 22/tcp SSH 安全…

Cisco Packet Tracer 思科模拟器SSH配置

一、配置主机名 二、在路由器上创建网络IP域名&#xff08;不创建域名的话ssh服务不能被启用&#xff09; R1(config)#ip domain-name zym.com 三、创建RSA加密秘钥 R1(config)#crypto key generate rsa 创建加密rsa秘钥 The name for the keys will be: R1.zym.com Choo…

百度SEO全自动百度挂机循环提交工具(MIP 主动推送)泛目录专用

介绍&#xff1a; 今年各种泛目录程序可谓是大火&#xff0c;但是趁手的提交工具却没有几个&#xff0c;这里资源楼购入了一款比较不错的提交工具。 软件亲测有效&#xff0c;支持循环挂机提交&#xff01; 无需复杂配置&#xff0c;自动生成链接提交&#xff0c;非常适合新…