如何写数据可视化简易脚本

wen 实用脚本 33

本文目录导读:

如何写数据可视化简易脚本

  1. 安装所需库
  2. 基础折线图
  3. 多种图表类型
  4. 从CSV数据创建可视化
  5. 快速可视化函数
  6. 保存图表为图片
  7. 完整示例:股票数据可视化
  8. 使用建议

我来帮你写一个简单的数据可视化脚本,这里用Python的matplotlib和pandas库,从零开始创建基础图表。

安装所需库

pip install matplotlib pandas numpy

基础折线图

import matplotlib.pyplot as plt
import pandas as pd
# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 创建图表
plt.figure(figsize=(10, 6))
plt.plot(x, y, marker='o', linestyle='-', color='blue', linewidth=2)
# 添加标签和标题
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')'简单折线图示例')
plt.grid(True, alpha=0.3)
# 显示图表
plt.show()

多种图表类型

import matplotlib.pyplot as plt
import numpy as np
# 生成示例数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 78, 33]
# 1. 柱状图
plt.figure(figsize=(12, 8))
plt.subplot(2, 2, 1)
plt.bar(categories, values, color='skyblue', edgecolor='black')'柱状图')
plt.xlabel('分类')
plt.ylabel('数值')
# 2. 饼图
plt.subplot(2, 2, 2)
colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen', 'orange']
plt.pie(values, labels=categories, colors=colors, autopct='%1.1f%%')'饼图')
# 3. 散点图
plt.subplot(2, 2, 3)
x = np.random.randn(50)
y = np.random.randn(50)
plt.scatter(x, y, c='red', alpha=0.5)'散点图')
plt.xlabel('X')
plt.ylabel('Y')
# 4. 直方图
plt.subplot(2, 2, 4)
data = np.random.randn(1000)
plt.hist(data, bins=30, color='green', alpha=0.7)'直方图')
plt.xlabel('数值')
plt.ylabel('频数')
plt.tight_layout()
plt.show()

从CSV数据创建可视化

import pandas as pd
import matplotlib.pyplot as plt
# 创建示例数据
data = {
    '日期': ['2023-01', '2023-02', '2023-03', '2023-04', '2023-05'],
    '销售额': [100, 150, 130, 200, 180],
    '利润': [30, 45, 40, 60, 55]
}
df = pd.DataFrame(data)
# 折线图
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(df['日期'], df['销售额'], marker='s', label='销售额')
plt.plot(df['日期'], df['利润'], marker='o', label='利润')'月度销售数据')
plt.xlabel('月份')
plt.ylabel('金额')
plt.legend()
plt.xticks(rotation=45)
# 复合柱状图
plt.subplot(1, 2, 2)
x = range(len(df))
width = 0.35
plt.bar([i - width/2 for i in x], df['销售额'], width, label='销售额', color='blue')
plt.bar([i + width/2 for i in x], df['利润'], width, label='利润', color='green')'销售对比')
plt.xlabel('月份')
plt.ylabel('金额')
plt.xticks(x, df['日期'], rotation=45)
plt.legend()
plt.tight_layout()
plt.show()

快速可视化函数

import matplotlib.pyplot as plt
import numpy as np
def quick_plot(data, plot_type='line', title='数据可视化'):
    """
    快速创建可视化图表
    参数:
    - data: 数据(列表或numpy数组)
    - plot_type: 图表类型('line', 'bar', 'hist', 'scatter')
    - title: 图表标题
    """
    plt.figure(figsize=(8, 5))
    if plot_type == 'line':
        plt.plot(data, marker='o', linestyle='-')
    elif plot_type == 'bar':
        plt.bar(range(len(data)), data)
    elif plot_type == 'hist':
        plt.hist(data, bins=20, alpha=0.7)
    elif plot_type == 'scatter':
        x = np.arange(len(data))
        plt.scatter(x, data, alpha=0.7)
    plt.title(title)
    plt.grid(True, alpha=0.3)
    plt.show()
# 使用示例
data = np.random.randn(100)
quick_plot(data, 'hist', '随机数据分布')

保存图表为图片

# 在创建图表后
plt.savefig('my_chart.png', dpi=300, bbox_inches='tight')
plt.savefig('my_chart.pdf', format='pdf')  # 矢量格式

完整示例:股票数据可视化

import matplotlib.pyplot as plt
import numpy as np
# 模拟股票数据
dates = ['2023-01', '2023-02', '2023-03', '2023-04', '2023-05', '2023-06']
prices = [100, 105, 98, 110, 115, 108]
volume = [1000, 1200, 800, 1500, 1300, 1100]
# 创建子图
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))
# 价格走势
ax1.plot(dates, prices, color='blue', marker='o', linewidth=2)
ax1.set_title('股票价格走势')
ax1.set_ylabel('价格')
ax1.grid(True, alpha=0.3)
# 成交量
ax2.bar(dates, volume, color='green', alpha=0.6)
ax2.set_title('成交量')
ax2.set_ylabel('成交量')
ax2.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

使用建议

  1. 从简单开始:先用简单数据测试,再应用到实际数据
  2. 图表类型选择
    • 趋势展示:折线图
    • 比较数据:柱状图
    • 占比分析:饼图
    • 分布分析:直方图
  3. 美化图表、标签、图例、网格
  4. 保存图片:使用plt.savefig()保存为png或pdf

这个脚本框架可以快速上手,根据你的具体数据格式调整即可,需要更复杂的图表(如交互式图表)可以考虑使用Plotly或Bokeh库。

抱歉,评论功能暂时关闭!