给图像画图在jupyter

1.画线条

from skimage import io,draw

import matplotlib.pyplot as plt

image=io.imread("D:\\A-GX\\3\\7.jpg" )

这行代码使用了 draw.line 函数来在图像上绘制一条从左上角 (1, 150) 到右下角 (200, 660) 的线。rr 和 cc 变量存储了这条线上的行和列的索引。

rr,cc=draw.line(1,150,200,660)

这行代码将线上的像素值设置为零,即将线绘制为黑色。

image[rr,cc]=0

#  draw.set_color(image,[rr,cc],[0,0,255])   调色

plt.imshow(image,plt.cm.gray)

运行结果:

2.画圆

from skimage import io,draw

import matplotlib.pyplot as plt

image=io.imread("D:\\A-GX\\3\\7.jpg" )

这行代码使用了 draw.disk 函数来在图像上绘制一个以 (150, 150) 为中心,半径为 60 的圆形。rr 和 cc 变量存储了圆形内的行和列的索引 

rr,cc=draw.disk((150,150),60)

这行代码使用 draw.set_color 函数将圆形内的像素值设置为蓝色。

draw.set_color(image,[rr,cc],[0,0,255])   
plt.imshow(image,plt.cm.gray)

运行结果:

<think>好的,我现在需要帮助用户在Jupyter Notebook中使用Matplotlib或Seaborn进行数据可视化。首先,我应该整理一下用户的问题和已有的引用信息。用户提到了三个引用,其中引用[1]和[2]涉及Matplotlib和Seaborn的设置,引用[3]是关于导入数据和设置中文显示。 首先,用户想知道如何在Jupyter中绘图,可能需要步骤指导。根据引用[1],Jupyter有两种模式:notebook和inline。用户需要知道如何启用这些模式。引用[2]显示导入库的代码,比如pandas、matplotlib.pyplot和seaborn,并且使用%matplotlib inline。引用[3]中的代码有设置中文字体的部分,这可能对中文用户很重要,因为默认情况下Matplotlib可能不支持中文显示,导致乱码。 接下来,我应该分步骤回答。首先是如何配置交互模式,然后是导入必要的库,接着是数据准备,再是使用Matplotlib和Seaborn绘图,最后处理中文显示的问题。可能还需要提到常见问题,比如图像不显示或者中文乱码的解决方法。 需要注意的是,用户可能不熟悉代码的具体步骤,所以需要给出清晰的示例代码。例如,使用Matplotlib绘制折线图或散点图,Seaborn的箱线图或热力图。同时,中文设置的部分需要详细说明,比如设置字体为'Arial Unicode MS'或者使用系统支持的字体。 另外,用户的问题可能涉及两种库的比较,所以需要简要说明Matplotlib和Seaborn的区别,比如Seaborn是基于Matplotlib的,提供更高级的接口和美观的样式。 可能还需要检查引用内容是否正确对应步骤。例如,引用[1]中的%matplotlib notebook和inline的区别,引用[3]中的字体设置。确保这些引用被正确标注在回答中,比如在设置交互模式时引用[1],在设置中文时引用[3]。 最后,生成的相关问题应该围绕用户可能遇到的后续问题,比如如何保存图像、调整样式、解决图形不显示等。确保问题具有逻辑性和连贯性,帮助用户进一步学习。</think>在Jupyter Notebook中使用Matplotlib和Seaborn进行数据可视化可分为以下步骤: ### 一、环境配置 1. **启用交互模式**(二选一): ```python %matplotlib notebook # 可缩放/平移的交互模式[^1] # 或 %matplotlib inline # 生成静态图像 ``` 2. **导入核心库**: ```python import matplotlib.pyplot as plt import seaborn as sns import pandas as pd ``` ### 二、数据准备 以鸢尾花数据集为例: ```python from sklearn import datasets iris = datasets.load_iris() df = pd.DataFrame(iris.data, columns=['花萼长', '花萼宽', '花瓣长', '花瓣宽']) ``` ### 三、Matplotlib绘图 1. **基础折线图**: ```python plt.plot(df['花萼长'], df['花萼宽'], 'g--') plt.title('花萼尺寸关系') plt.xlabel('长度(cm)') plt.ylabel('宽度(cm)') plt.show() ``` 2. **散点图矩阵**: ```python pd.plotting.scatter_matrix(df, figsize=(10,6)) plt.suptitle('特征分布矩阵', y=1.02) ``` ### 四、Seaborn高级可视化 1. **箱线图分析**: ```python sns.boxplot(data=df) plt.xticks(rotation=30) plt.title('特征值分布') ``` 2. **热力图展示**: ```python corr = df.corr() sns.heatmap(corr, annot=True, cmap='coolwarm') plt.title('特征相关性') ``` ### 五、中文显示配置 ```python plt.rcParams['font.family'] = 'Arial Unicode MS' # Mac系统[^3] # Windows可使用 SimHei,Linux使用 Noto Sans CJK plt.rcParams['axes.unicode_minus'] = False # 解决负号显示异常 ``` ### 六、常见问题排查 | 现象 | 解决方案 | |------|----------| | 图形未显示 | 检查是否执行`plt.show()`或忘记`%matplotlib inline`[^1] | | 中文乱码 | 确认字体配置正确,可用`plt.rcParams['font.sans-serif']`查看当前字体[^3] | | 图像模糊 | 添加`%config InlineBackend.figure_format = 'retina'`提升分辨率 |
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值