python可视化图表生成(一)

本文介绍了使用Python Matplotlib库创建折线图、散点图和三维图的步骤,包括基本的代码示例和关键组件如图例、坐标轴标签和图名。从数据生成到图表展示,涵盖了从二维到三维的数据可视化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装拓展包

pip install matplotlib在这里插入图片描述
二、折线图

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2, 100)#创建等差数列 0-2之间100个

plt.plot(x, x, label="line1")#第一个参数为横坐标 第二个为纵坐标 第三个为曲线名字
plt.plot(x, x**2, label="line2")
plt.plot(x, x**3, label="line3")

plt.xlabel("x label")#x轴名字
plt.ylabel("y label")#y轴名字

plt.title("测试折线图")#图标名字

plt.legend()#显示图例

plt.show()#生成图表

在这里插入图片描述
三、散点图

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0., 5., 0.2)#从0-5之间,产生等差数列,公差为0.2

plt.plot(x, x, "r--", x, x**2, "bs", x, x**3, "g^")#
plt.xlabel("x label")#x轴名字
plt.ylabel("y label")#y轴名字

plt.title("测试折线图")#图标名字

plt.legend()#显示图例

plt.show()#生成图表

在这里插入图片描述
四、三维散点图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

data = np.random.randint(0, 255, size=[40,40,40])#产生0~255的随机数40x3个

x,y,z = data[0],data[1],data[2]#x y z分别40个随机数
ax = plt.subplot(111, projection="3d")#创建三维绘图

ax.scatter(x[:10], y[:10], z[:10], c="y")#绘制散点
ax.scatter(x[10:20], y[10:20], z[10:20], c="r")
ax.scatter(x[30:40], y[30:40], z[30:40], c="g")

ax.set_xlabel("X")#x轴名字
ax.set_ylabel("Y")#y轴名字
ax.set_zlabel("Z")#z轴名字


plt.title("测试折线图")#图标名字

plt.legend()#显示图例

plt.show()#生成图表

在这里插入图片描述

五、三维平面图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()#创建一个新的画板
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)#产生-4~4之间的等差数列,公差0.25
Y = np.arange(-4, 4, 0.25)
X,Y = np.meshgrid(X, Y)#画网格
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)#产生z值
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap="rainbow")#绘图

plt.show()#生成图表

在这里插入图片描述

<think>首先,用户的问题是:“python输出图表的中文为什么变成了方格符号”,这是个关于Python图表输出中文乱码的问题。 关键点:用户在使用Python绘制图表时,中文显示为方格符号(通常是由于编码问题或字体不支持中文导致的)。 我的回答需要: 1. 用中文回答问题。 2. 回答完问题后,提出3-5个相关问题。 3. 相关问题必须以“§§相关问题§§”开头,且不能换行分散。 4. 相关问题的格式是数字列表,如“1. ···\n2. ···\n3. ···”。 回答结构: - 先解释问题原因。 - 提供解决方案。 - 然后输出相关问题。 问题原因:在Python图表中,中文显示为方格符号通常是因为: - 默认字体不支持中文。 - 编码问题(如Matplotlib默认使用英文字体)。 - 缺少中文字体文件。 常见解决方案: 1. 设置中文字体,例如在Matplotlib中: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体 plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 ``` 2. 确保系统有中文字体。 3. 在代码中指定字体。 完整回答: - 解释原因。 - 给出代码示例。 - 然后输出相关问题。 相关问题:基于用户的问题,我应该提出与Python图表中文显示相关的后续问题。例如: 1. 如何检查系统是否安装了中文字体? 2. 在Jupyter Notebook中如何解决中文乱码问题? 3. 除了Matplotlib,其他库如Seaborn或Plotly如何处理中文显示? 4. 如何自定义图表中的中文字体? 5. 为什么在某些环境中中文显示正常,而在其他环境中乱码? 确保3-5个问题。 最终输出格式: - 回答内容。 - 然后“§§相关问题§§” - 紧接着是数字列表的问题,如: §§相关问题§§ 1. 第个问题 2. 第二个问题 3. 第三个问题 不能换行分散,意思是“§§相关问题§§”必须在第行,然后直接跟着问题列表。</think>在Python输出图表时,中文显示为方格符号(如□或▢),通常是由于以下原因导致的: 1. **字体不支持中文**:Python图表库(如Matplotlib)默认使用英文字体(如DejaVu Sans),这些字体不包含中文字符集,因此无法正确渲染中文。 2. **编码问题**:系统或环境的字符编码未正确设置为UTF-8,导致中文字符在渲染时被替换为占位符方格。 3. **缺少中文字体文件**:操作系统中未安装中文字体(如SimHei、Microsoft YaHei),或Python未正确加载这些字体。 ### 解决方法: 1. **在Matplotlib中设置中文字体**: ```python import matplotlib.pyplot as plt # 设置中文字体(例如黑体) plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'KaiTi'] # 优先使用支持中文的字体 # 解决负号显示异常 plt.rcParams['axes.unicode_minus'] = False # 示例绘图 plt.plot([1, 2, 3], label='中文标签') plt.legend() plt.show() ``` 2. **确保系统安装中文字体**: - Windows:检查字体目录(如C:\Windows\Fonts)是否有SimHei.ttf等文件。 - Linux/macOS:安装中文字体包(如`sudo apt-get install fonts-wqy-zenhei`)。 3. **在代码中指定字体文件路径**(适用于自定义字体): ```python from matplotlib.font_manager import FontProperties font = FontProperties(fname='/path/to/your/font.ttf') # 替换为实际字体路径 plt.xlabel('X轴', fontproperties=font) ``` 4. **检查环境编码**: - 在Python脚本开头添加编码声明:`# -*- coding: utf-8 -*-`。 - 确保IDE或终端使用UTF-8编码(例如在VSCode中设置`"files.encoding": "utf8"`)。 如果问题未解决,请检查图表库版本(如`pip install --upgrade matplotlib`)或尝试其他中文字体(如Noto Sans CJK)。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值