Python----数据分析(Matplotlib一:库介绍,基本使用,中文乱码问题,负数不显示问题)

 一、Matplotlib库

1.1、简介

        Matplotlib 是一个用于绘制图表和可视化数据的 Python 库。它提 供了一种类似于 MATLAB 的绘图接口,使用户能够轻松地生成各种 类型的图形,包括折线图、散点图、直方图、饼图等。Matplotlib 被广泛应用于数据分析、科学计算、工程和其他领域

1.2、特点

(1)易于上手:Matplotlib的API设计简洁,绘图流程清晰,初学者可以快速掌握。

(2)高度可定制:Matplotlib提供了丰富的绘图参数,用户可以根据需求调整图形 样式、颜色、字体等。

(3)支持多种数据源:Matplotlib可以处理多种数据格式,如列表、数组、Pandas 数据框等。

(4)跨平台:Matplotlib支持Windows、Linux和macOS等多个操作系统。

官网:Matplotlib — Visualization with Python 

安装:pip install matplotlib

1.3、 图表(Figure)

        在 Matplotlib 中,Figure 是一个顶层容器,用于包含图表中的所有元素。比如坐标轴、图例、标题、等

1.4、轴(Axes)

        一个 Matplotlib 图表可以包含一个或多个 Axes 对象,每个 Axes 对象都是一个独立的坐标系,可以理解成一个子图

1.5、轴(Axis)

        在 Matplotlib 中,Axis 这个词可以指代 坐标轴,即图表中的X轴和Y轴。这是用于定位和测量数据点位置的参考线

1.6、画家(Artist)

        在 Matplotlib 中,Artist 是一个基础的图形元素对象,它代表了图表中的各种图形元素,如图形、文本、线条等。所有的图形元素,无论是图表本身、坐标轴、标签还是其他可见的部分,都是 Artist 对象

二、Matplotlib的基本使用

方法名说明
title()设置图表的名称
xlabel()设置x轴名称
ylabel()设置y轴名称
xticks(x,ticks,rotation)设置x轴的刻度,rotation旋转角度
yticks()设置y轴的刻度
plot()绘制线性图表
show()显示图表
legend()显示图例
text(x,y,text)显示每条数据的值 x,y值的位置
figure(name,figsize=(w,h),dpi=n)设置图片大小
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(x,squares)
plt.show()
import matplotlib.pyplot as plt
datas=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(datas,squares,linewidth=5) #设置线条宽度
#设置图标标题,并在坐标轴上添加标签
plt.title('Numbers',fontsize=24)
plt.xlabel('datas',fontsize=14)
plt.ylabel('squares',fontsize=14)
plt.show()

三、中文乱码问题

查看系统内字体

from matplotlib.font_manager import fontManager as fm


for f in fm.ttflist:
  if f.fname.find('simhei.ttf') != -1:
    print(f.name,'===',f.fname)

临时增加字体

from matplotlib.font_manager import fontManager as fm


fm.addfont('./ali.ttf')
for f in fm.ttflist:
  if f.fname.find('ali') != -1:
    print(f.name,'===',f.fname)

设置字体

import matplotlib.pyplot as plt


#设置中文乱码问题
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['font.family']='SimHei'

单独设置字体

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties


datas=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(datas,squares) #设置线条宽度
#设置图标标题,并在坐标轴上添加标签
plt.title('标题设置',fontsize=24,fontdict={'fontproperties':FontProperties(fname='./ali.ttf')})
plt.xlabel('x轴',fontsize=14,fontdict={'family':'SimHei'})
plt.ylabel('y轴',fontsize=14,fontdict={'family':'SimHei'})

四、负数不显示问题

plt.rcParams['axes.unicode_minus'] = False

五、思维导图 

### 如何在 Python Matplotlib 中正确显示中文字符 为了使 Matplotlib 正确显示中文字符并避免乱码问题,可以通过调整字体设置来实现。具体方法涉及修改 `rcParams` 参数以指定支持中文的字体。 #### 方法:通过 rcParams 配置全局字体属性 可以在脚本开头加入以下代码片段,这会将默认无衬线字体设置为黑体 (SimHei),从而确保整个绘图过程中都能正常渲染中文: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 处理负号显示异常的问题 ``` 此配置使得所有后续创建的图表都采用 SimHei 字体,并解决了可能存在的负数符号显示正确的情况[^4]。 #### 方法二:动态加载特定字体文件 如果希望更灵活地控制所使用的字体,可以直接实例化 `FontProperties` 对象并将目标 TTF 文件路径传递给它。这种方式允许程序运行时根据实际情况选择合适的字体资源: ```python from matplotlib.font_manager import FontProperties my_font = FontProperties(fname='/path/to/simhei.ttf') # 替换为实际路径 plt.text(x, y, '你好世界', fontproperties=my_font) ``` 这种方法适用于那些需要临时应用特殊样式或仅限于单个元素的应用场景[^1]。 #### 方法三:查找并注册系统内已安装的支持中文字体 对于确定哪些字体能够良好呈现汉字的情形下,可以先枚举当前环境中可用的所有 TrueType 字体名称列表,再从中挑选适合的个作为默认选项: ```python from matplotlib.font_manager import FontManager fm = FontManager() available_fonts = {f.name for f in fm.ttflist} print('Available Chinese fonts:', available_fonts) if 'SimSun' in available_fonts: plt.rcParams['font.family'] = 'SimSun' elif 'Arial Unicode MS' in available_fonts: plt.rcParams['font.family'] = 'Arial Unicode MS' else: raise ValueError("No suitable Chinese font found.") ``` 上述逻辑尝试优先选用宋体(SimSun);如果没有找到,则退而求其次考虑 Arial Unicode MS 这样的多语言兼容字体[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值