plt的补充

本文介绍了如何使用matplotlib中的scatter函数展示数据颜色渐变,pcolormesh绘制网格区域,bar函数制作柱状图,以及xticks控制坐标轴标签。通过实例演示了颜色映射cmp的运用和标签设置技巧。

1. plt.scatter()

这里主要想说说常见的c=y的这种操作,他会给定一个颜色的变换范围,数值越小则越趋近于一个颜色,越大则趋近另一个
在这里插入图片描述

1.1

还有一个额外的变量 zorder=num,设置这个可以让scatter描绘的图案在别的上面

mp.scatter(x[:, 0], x[:, 1], c=y, cmap='jet', s=80,zorder=3)
mp.pcolormesh(grid_x,grid_y,grid_z,cmap='gray')
mp.scatter(x[:, 0], x[:, 1], c=y, cmap='jet', s=80)
mp.pcolormesh(grid_x,grid_y,grid_z,cmap='gray')

效果对比
在这里插入图片描述
在这里插入图片描述

1.2.

说下cmp,这是个颜色控制器,决定呈现的颜色的变化范围
详情见 https://blog.youkuaiyun.com/weixin_39580795/article/details/102622004
写的特别好,
应用举例
这里主要想说说常见的c=y(一般这个y是一个列表)的这种操作,他会给定一份颜色的变换范围(由cmp这个决定),数值越小则越趋近于一个颜色,越大则趋近另一个
比如:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.pyplot as mp
x = np.array([
    [3, 1],
    [2, 5],
    [1, 8],
    [6, 4],
    [5, 2],
    [3, 5],
    [4, 7],
    [4, -1]])
y = np.array([0, 1, 1, 0, 0, 1, 1, 0])
l, r = x[:, 0].min() - 1, x[:, 0].max() + 1
b, t = x[:, 1].min() - 1, x[:, 1].max() + 1
n = 500
grid_x, grid_y = np.meshgrid(np.linspace(l, r, n), np.linspace(b, t, n))
grid_z = np.piecewise(grid_x, [grid_x>grid_y, grid_x<grid_y], [1, 0])

plt.figure('Simple Classification', facecolor='lightgray')
plt.title('Simple Classification', fontsize=16)
plt.xlabel('x', fontsize=14)
plt.ylabel('y', fontsize=14)
#关于 c=y这里,数越小越蓝,数越大越红
plt.scatter(x[:, 0], x[:, 1], c=y, cmap='jet', s=80)
plt.show()

在这里插入图片描述

2.plt.pcolormesh()

这是用来生成分割线的
在这里插入图片描述
在这里插入图片描述

3.plt.bar()

这个是用来画柱形图的
效果如下
在这里插入图片描述

bar(x, height, width=0.8, bottom=None, ***, align=‘center’, data=None, **kwargs)

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
N = 5
y = [20, 30, 10, 25, 15]
index = np.arange(N)
plt.bar(x=index, height=y)
plt.show()

结果为上方柱状图

4. plt.xticks()

这个主要是用来设置x轴上的坐标,或者柱状图的标签
xticks(ticks, [labels], **kwargs)
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性。

import numpy as np
import matplotlib.pyplot as plt
import calendar
x = range(1,13,1)
y = range(1,13,1)
plt.plot(x,y)
plt.xticks(x, calendar.month_name[1:13],color='blue',rotation=60)  #参数x空值X轴的间隔,第二个参数控制每个间隔显示的文本,后面两个参数控制标签的颜色和旋转角度
plt.show()

在这里插入图片描述

refernce

1.https://blog.youkuaiyun.com/TeFuirnever/article/details/88944438
2.https://blog.youkuaiyun.com/bug_12/article/details/93983782
3.https://blog.youkuaiyun.com/Asher117/article/details/111492094?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163005549316780255283469%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163005549316780255283469&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-4-111492094.pc_search_result_cache&utm_term=plt.bar&spm=1018.2226.3001.4187
4.https://blog.youkuaiyun.com/u011208984/article/details/90720516?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163005639316780366578282%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163005639316780366578282&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-90720516.pc_search_result_cache&utm_term=plt.xticks&spm=1018.2226.3001.4187

03-11
<think>好的,用户想了解Python matplotlib库的使用方法。我需要整理一下相关的信息,确保回答结构清晰,符合用户的要求。首先,根据用户提供的引用内容,有三个引用来源,其中引用[1]和[2]是关于基础使用和绘图的示例,引用[3]看起来像是Matlab的代码,但用户可能误贴了,不过里面的设置刻度标签和字体大小等操作在matplotlib中也有对应的实现,所以可能需要调整解释。 用户需要的是使用方法,所以应该分步骤或分模块讲解。常见的matplotlib用法包括绘制线图、设置标题和标签、保存图像、添加图例、设置坐标轴刻度等。另外,用户提供的引用中有提到线图、散点图、3D图,可能需要涵盖这些内容。 首先,我应该从安装开始,虽然用户没有提到,但可能对新手有帮助。然后导入库,通常用import matplotlib.pyplot as plt。接着是基本绘图步骤:创建数据、绘制图形、添加标签和标题、显示或保存图像。可能需要提到如何在同一图中绘制多条线,并添加图例,如引用[1]中的例子。 另外,引用[2]中提到了保存图像到文件和清除画布,这也是重要的点。引用[3]中的设置刻度和标签,虽然在示例中是Matlab代码,但需要转换为matplotlib的方法,比如使用plt.xticks()来设置刻度位置和标签,并调整字体大小。 还需要注意用户提到的系统级指令,比如行内数学公式用$...$,独立公式用$$...$$,但这个问题主要是关于代码使用,可能数学公式较少,但如果有的话需要注意格式。例如,如果提到公式,如绘制函数图像时的数学表达式,可能需要使用LaTeX语法。 接下来,需要检查是否所有引用的内容都被合理利用。引用[1]中的例子有绘制多条线、图例、标题、坐标轴标签,以及散点图的例子(带marker="o")。引用[2]中的随机数据生成、保存图像、清除画布。引用[3]中的设置刻度和标签,xlim限制范围,字体大小设置。 可能的结构: 1. 基础线图绘制:使用plot,设置标题、标签,显示或保存图像。 2. 多曲线与图例:在同一图中绘制多条线,添加图例。 3. 样式定制:颜色、线型、标记点,如引用[1]中的marker="o"。 4. 坐标轴设置:刻度位置、标签、范围,字体大小,如引用[3]中的内容。 5. 散点图与3D图:引用[1]中的散点示例,可能需要补充。 6. 图像保存与画布管理:引用[2]中的savefig和clf。 同时,需要生成相关问题,可能包括如何绘制其他类型的图表(如柱状图、饼图)、如何调整图像尺寸、如何添加注释或文本,或者如何结合pandas使用matplotlib等。 现在需要确保回答中的代码示例正确,符合用户提供的引用内容,并且没有错误。例如,引用[1]中的代码可能存在问题,比如a=np.arange(10),然后plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5),这里参数是否正确?在matplotlib中,plot的每个线需要x和y,所以正确的应该是plt.plot(a, a*1.5, a, a*2.5, ...),但实际在matplotlib中,正确的用法应该是多次调用plot或者将多组x,y对传入。不过更常见的是循环添加,或者传入多个参数,例如plt.plot(x1, y1, x2, y2, ...)。需要确认示例是否正确,或者是否需要调整。 例如,引用[1]中的plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5),这会被解释为绘制四条线,每条线的x都是a,y依次是a*1.5, a*2.5等?是的,这种写法是正确的,因为plot接受可变参数,每对x,y后可以跟格式字符串。但实际在代码中,可能需要用不同的颜色或线型区分,但在示例中可能没有,所以用户可能需要添加图例,如代码中的plt.legend。 需要确保代码示例正确,并且解释清楚。同时,引用[2]中的代码是绘制随机数据,保存为test1.jpg,使用plt.clf()清除画布,这也是需要注意的地方。 现在,组织回答的结构: 1. 安装与导入 2. 基础线图绘制 3. 多曲线与图例 4. 样式定制(颜色、线型、标记) 5. 坐标轴设置(刻度、标签、范围) 6. 图像保存与画布管理 7. 其他图表类型(散点图、3D图) 每个部分给出对应的代码示例,并引用对应的引用来源。比如,在基础线图部分引用引用[2]的例子,多曲线部分引用引用[1],坐标轴设置引用引用[3]中的设置方法,虽然原代码是Matlab,但转换为matplotlib的plt.xticks和字体设置。 可能需要注意的问题: - 引用[3]中的代码是Matlab语法,需要转换为matplotlib的正确方法。例如,设置刻度位置和标签,在matplotlib中是plt.xticks(ticks, labels),而设置字体大小可以使用plt.tick_params或直接设置全局字体。 例如,用户引用[3]中的代码: x = 0 : 24; y = x .^ 2; plot(x, y, '*-', 'linewidth', 2); set(gca, 'xTick', [0:6:24]); set(gca,'XTickLabel',{'00:00','06:00','12:00','18:00','24:00'}) set(gca, 'FontSize', 18); xlim([0, 24]) 对应的matplotlib代码应该是: import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 25) y = x ** 2 plt.plot(x, y, '*-', linewidth=2) plt.xticks(np.arange(0, 25, 6), ['00:00', '06:00', '12:00', '18:00', '24:00']) plt.tick_params(axis='both', labelsize=18) plt.xlim(0, 24) plt.show() 因此,在回答中需要解释如何设置刻度位置和标签,以及调整字体大小。 在生成相关问题的时候,可能需要包括如何绘制子图、如何设置图例位置、如何处理中文显示问题、如何调整图像大小等。 现在,综合所有信息,开始撰写回答,确保结构清晰,步骤详细,代码正确,并正确引用来源。</think>### Python matplotlib 使用方法详解 #### 1. 安装与导入 Matplotlib 是 Python 的常用绘图库,可通过以下命令安装: ```bash pip install matplotlib ``` 导入库时通常使用别名 `plt`: ```python import matplotlib.pyplot as plt ``` --- #### 2. 基础线图绘制 **步骤**: 1. **生成数据**:使用 `numpy` 或自定义列表 2. **绘制图形**:`plt.plot(x, y)` 3. **设置标题与坐标轴**:`plt.title()`, `plt.xlabel()`, `plt.ylabel()` 4. **显示或保存图像**:`plt.show()` 或 `plt.savefig()` **示例**(引用[2]): ```python import random x = range(100) y = [random.randint(1,10) for _ in range(100)] plt.title("测试图") plt.xlabel("X轴") plt.ylabel("Y轴") plt.plot(x, y) plt.savefig("test1.jpg") # 保存图像 plt.clf() # 清除画布 ``` --- #### 3. 多曲线与图例 在同一图中绘制多条曲线时,可通过多次调用 `plt.plot()` 或传入多组参数,并使用 `plt.legend()` 添加图例。 **示例**(引用[1]): ```python a = np.arange(10) plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5) plt.legend(['1.5x', '2.5x', '3.5x', '4.5x']) # 图例标签需与曲线顺序一致 plt.title("多条曲线对比") plt.show() ``` --- #### 4. 样式定制 - **颜色与线型**:通过参数指定,如 `plt.plot(x, y, 'r--')`(红色虚线) - **标记点**:使用 `marker` 参数,如 `marker="o"`(圆圈标记)(引用[1]): ```python j = np.linspace(-10, 10, 100) k = np.sin(j) plt.plot(j, k, marker="o") # 添加数据点标记 plt.show() ``` --- #### 5. 坐标轴设置 - **刻度与标签**:`plt.xticks(ticks, labels)` - **字体大小**:通过 `plt.tick_params()` 调整 - **范围限制**:`plt.xlim()` 或 `plt.ylim()` **示例**(引用[3]转换为 Matplotlib 语法): ```python x = np.arange(0, 25) y = x ** 2 plt.plot(x, y, '*-', linewidth=2) plt.xticks(np.arange(0, 25, 6), ['00:00', '06:00', '12:00', '18:00', '24:00']) plt.tick_params(axis='both', labelsize=12) # 设置刻度字体大小 plt.xlim(0, 24) plt.show() ``` --- #### 6. 图像保存与画布管理 - **保存图像**:`plt.savefig("filename.jpg")`(支持 PNG、SVG 等格式) - **清除画布**:`plt.clf()`(避免多图叠加) --- #### 7. 其他图表类型 - **散点图**:`plt.scatter(x, y)` - **3D 图**:需导入 `Axes3D` 模块(引用[1]): ```python from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(x, y, z) # 替换为实际数据 plt.show() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值