当前位置: 首页 > wzjs >正文

新乡网站推广公司小制作小发明手工简单又漂亮

新乡网站推广公司,小制作小发明手工简单又漂亮,中文网站数量,百度网站v认证目录 引言 一、环境配置与基础概念 1.1 安装Matplotlib 1.2 导入惯例 1.3 两种绘图模式 二、基础图形绘制 2.1 折线图(Line Plot) 2.2 柱状图(Bar Chart) 三、高级图表类型 3.1 散点图(Scatter Plot&#xff…

目录

引言

一、环境配置与基础概念

1.1 安装Matplotlib

1.2 导入惯例

1.3 两种绘图模式

二、基础图形绘制

2.1 折线图(Line Plot)

2.2 柱状图(Bar Chart)

三、高级图表类型

3.1 散点图(Scatter Plot)

3.2 饼图(Pie Chart)

3.3 直方图(Histogram)

四、多图布局与样式定制

4.1 子图布局(Subplots)

4.2 样式定制(StyleCustomization)

五、三维可视化

5.1 3D曲面图

六、实战案例:销售数据分析

案例1:多维度销售趋势分析

案例2:动态交互式可视化

七、高级技巧与优化

7.1 样式美化

7.2 输出高清图像

7.3 性能优化

八、常见问题解决方案

8.1 中文显示问题

8.2 坐标轴科学计数法

结语


引言

Matplotlib是Python最强大的数据可视化库,可以创建高质量的2D/3D图形,完美支持科学计算与数据分析。本文将深入讲解Matplotlib的核心功能,通过20+个实战案例,带你从基础绘图到高级可视化技巧,全面掌握数据图形化表达!


一、环境配置与基础概念

1.1 安装Matplotlib

pip install matplotlib

1.2 导入惯例

import matplotlib.pyplot as plt  # 主要接口
import numpy as np               # 配合使用

1.3 两种绘图模式

  • 脚本模式

    plt.plot() + plt.show()
  • 面向对象模式(推荐):

    fig, ax = plt.subplots()
    ax.plot(x, y)
     

二、基础图形绘制

2.1 折线图(Line Plot)

x = np.linspace(0, 10, 100)
y = np.sin(x)fig, ax = plt.subplots(figsize=(8,4))
ax.plot(x, y, color='red', linestyle='--', linewidth=2,marker='o',markersize=5,label='sin(x)')
ax.set_title("正弦曲线示例")
ax.set_xlabel("X轴")
ax.set_ylabel("Y轴")
ax.legend()
plt.show()

2.2 柱状图(Bar Chart)

categories = ['A', 'B', 'C', 'D']
values = [25, 40, 30, 45]fig, ax = plt.subplots()
bars = ax.bar(categories, values, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728'],edgecolor='black')# 添加数值标签
for bar in bars:height = bar.get_height()ax.text(bar.get_x() + bar.get_width()/2., height,f'{height}',ha='center', va='bottom')ax.set_ylim(0, 50)
ax.grid(axis='y', linestyle='--')


三、高级图表类型

3.1 散点图(Scatter Plot)

x = np.random.randn(100)
y = x * 2 + np.random.randn(100)fig, ax = plt.subplots()
scatter = ax.scatter(x, y, c=np.abs(x+y),  # 颜色映射s=50,          # 点大小cmap='viridis',alpha=0.7)
plt.colorbar(scatter, label='强度值')

3.2 饼图(Pie Chart)

labels = ['电子产品', '服饰', '食品', '图书']
sizes = [35, 25, 20, 20]
explode = (0.1, 0, 0, 0)  # 突出显示第一项fig, ax = plt.subplots()
ax.pie(sizes, explode=explode,labels=labels,autopct='%1.1f%%',shadow=True,startangle=90)
ax.axis('equal')  # 正圆形

3.3 直方图(Histogram)

data = np.random.normal(170, 10, 1000)fig, ax = plt.subplots()
ax.hist(data, bins=30,density=True,   # 显示概率密度histtype='stepfilled',color='skyblue',edgecolor='black')
ax.set_xlabel("Height distribution")
ax.set_ylabel("probability density")


四、多图布局与样式定制

4.1 子图布局(Subplots)

x = np.random.randn(100)
y = x * 2 + np.random.randn(100)
data = np.random.normal(170, 10, 1000)
labels = ['electronics', 'costume', 'food', 'book']
sizes = [35, 25, 20, 20]fig, axs = plt.subplots(2, 2, figsize=(10,8))# 第一个子图
axs[0,0].plot(x, y)
axs[0,0].set_title("折线图")# 第二个子图
axs[0,1].scatter(x, y)# 第三个子图
axs[1,0].hist(data)# 第四个子图
axs[1,1].pie(sizes, labels=labels)plt.tight_layout()  # 自动调整间距

4.2 样式定制(StyleCustomization)

x = np.random.randn(10)
y = x * 2 + np.random.randn(10)
plt.style.use('ggplot')  # 使用内置主题fig, ax = plt.subplots()
ax.plot(x, y, linewidth=2,marker='D',markersize=8,markerfacecolor='yellow',markeredgecolor='black')# 设置刻度参数
ax.tick_params(axis='both', which='major', labelsize=12,direction='inout')# 设置网格线
ax.grid(True, linestyle='--', alpha=0.6)# 设置坐标轴范围
ax.set_xlim(0, 10)
ax.set_ylim(-1.5, 1.5)


五、三维可视化

5.1 3D曲面图

from mpl_toolkits.mplot3d import Axes3DX = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))fig = plt.figure(figsize=(10,6))
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z, cmap='viridis',antialiased=True)
fig.colorbar(surf, shrink=0.5)


六、实战案例:销售数据分析

案例1:多维度销售趋势分析

months = ['Jan', 'Feb', 'Mar', 'Apr']
sales_2023 = [120, 145, 178, 205]
sales_2024 = [135, 160, 190, None]  # 模拟缺失值fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,5))# 左侧:双折线图
ax1.plot(months, sales_2023, marker='o', label='2023')
ax1.plot(months[:3], sales_2024[:3], marker='s', label='2024')
ax1.set_title("月度销售趋势对比")
ax1.legend()# 右侧:柱状图
ax2.bar(months, sales_2023, alpha=0.7, label='2023')
ax2.bar(months, sales_2024, alpha=0.7, label='2024', bottom=sales_2023)
ax2.set_title("累计销售额对比")

案例2:动态交互式可视化

from matplotlib.animation import FuncAnimationfig, ax = plt.subplots()
xdata, ydata = [], []
ln, = ax.plot([], [], 'ro')def init():ax.set_xlim(0, 2*np.pi)ax.set_ylim(-1, 1)return ln,def update(frame):xdata.append(frame)ydata.append(np.sin(frame))ln.set_data(xdata, ydata)return ln,ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),init_func=init, blit=True)
plt.show()
 

七、高级技巧与优化

7.1 样式美化

plt.rcParams.update({'font.family': 'SimHei',        # 中文字体'font.size': 12,'axes.titlesize': 14,'axes.labelsize': 12
})

7.2 输出高清图像

fig.savefig('output.png', dpi=300,          # 分辨率bbox_inches='tight', facecolor='white')

7.3 性能优化

  • 使用ax.plot()替代多次plt.plot()

  • 对于大数据集使用numpy进行预计算

  • 关闭交互模式:plt.ioff()


八、常见问题解决方案

8.1 中文显示问题

# 方法1:指定中文字体
plt.rcParams['font.family'] = 'SimHei'# 方法2:动态加载字体
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='msyh.ttc', size=12)
ax.set_title("标题", fontproperties=font)

8.2 坐标轴科学计数法

ax.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
 

结语

Matplotlib是数据可视化的瑞士军刀,本文涵盖了其核心功能的80%。建议通过以下方式精进:

  1. 每天练习一种图表类型

  2. 研究优秀可视化案例的源码

  3. 学习结合Pandas直接绘图

  4. 探索Seaborn等高级封装库


文章转载自:

http://o7B9Yasx.Lhrxq.cn
http://n294QLdA.Lhrxq.cn
http://qVNO9wCf.Lhrxq.cn
http://c796q11d.Lhrxq.cn
http://HqWjua81.Lhrxq.cn
http://Ss1wl4uy.Lhrxq.cn
http://gEFQvUnB.Lhrxq.cn
http://8p3mhQJM.Lhrxq.cn
http://TJKSKwV7.Lhrxq.cn
http://niAV7inP.Lhrxq.cn
http://RG3WAyBL.Lhrxq.cn
http://PxVG9fCu.Lhrxq.cn
http://czMso4Sz.Lhrxq.cn
http://e47aSQ8v.Lhrxq.cn
http://MHPmdquU.Lhrxq.cn
http://IHwiKSIL.Lhrxq.cn
http://H0z3pJvy.Lhrxq.cn
http://ZP7U6JA3.Lhrxq.cn
http://JwDnKz68.Lhrxq.cn
http://JkGzQD07.Lhrxq.cn
http://Wol5tn2k.Lhrxq.cn
http://kq2cIbBG.Lhrxq.cn
http://LaLsviUg.Lhrxq.cn
http://YRAr0Uy5.Lhrxq.cn
http://ZWxVRy1C.Lhrxq.cn
http://3b0mV1v0.Lhrxq.cn
http://0j2sD0Fj.Lhrxq.cn
http://e4uYxClh.Lhrxq.cn
http://qrwV1SBD.Lhrxq.cn
http://PLvp5SPx.Lhrxq.cn
http://www.dtcms.com/wzjs/756737.html

相关文章:

  • 淄博网站制作网络丰富网站建设 十年
  • 单位网站建设情况调查情况网站建设及照片使用保密协议
  • 网站优化模板企业作风建设心得体会
  • 专业的培训行业网站开发网络营销顾问培训
  • 企业网站建设销售话术网站上的图标怎么改
  • 网站建站 在线制作如何自己做网站腾讯
  • 南阳网站排名优化报价免费软文网站
  • 网站怎做事业单位建立网站
  • seo诊断网站南安淘宝网站建设
  • 什么网站可以做注册任务怎么给网站做推广
  • 提供服务的网站甘肃省建设工程造价信息网站
  • wordpress问卷调查插件什么是seo教程
  • 门户网站简介顺德网站建设
  • 能否设置网站做局域网国内设计师网站
  • 四川省微信网站建设公湖南网络广告策划推广
  • 如何自己开一个网站软件编程
  • 昆明市建设厅官方网站网页素材下载
  • 东莞市建设企业网站企业wordpress 选项卡
  • 建设工程材料登记备案申请网站湘潭网站建设价格
  • 中元建设集团网站做影视网站难吗
  • 做冒菜店网站中医院网站模板
  • ip钓鱼网站在线生成建筑工人招工网
  • 自己开网店怎么运营搜索引擎优化好做吗
  • 赣州做网站公司哪家好郑州住房和城乡建设官网
  • 平顶山网站制作哪家公司好湘潭做网站公司
  • 株洲网站的建设青岛信息排名推广
  • 门户网站建设困难长沙公司网站设计报价
  • iis做本地视频网站网站建设销售年终总结
  • 连云港网站制作公司口碑好php网站源代码
  • 正规的咨询行业网站策划wordpress zip 升级