本文目录导读:

我来帮你写一个简单的数据可视化脚本,这里用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()
使用建议
- 从简单开始:先用简单数据测试,再应用到实际数据
- 图表类型选择:
- 趋势展示:折线图
- 比较数据:柱状图
- 占比分析:饼图
- 分布分析:直方图
- 美化图表、标签、图例、网格
- 保存图片:使用
plt.savefig()保存为png或pdf
这个脚本框架可以快速上手,根据你的具体数据格式调整即可,需要更复杂的图表(如交互式图表)可以考虑使用Plotly或Bokeh库。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播