Python 数据分析画图

本文介绍了Python数据分析中使用Matplotlib进行画图,包括设置轴标签、刻度、图例,以及保存图片。接着讨论了Pandas的plot函数在Series和DataFrame上的应用。此外,还详细讲解了one-hot编码的概念,特别是针对离散属性的处理,并提醒了在数据预处理中可能遇到的问题。最后,文章提到了seaborn库的violinplot和swarmplot函数,用于展示数据分布和协方差。

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

Python 数据分析画图&one-hot编码

标签(空格分隔): python


Matplotlib画图

fig, axes = plt.subplots(2, 2) #axes是一个数组
fig = plt.figure()
fig.set(alpha=0.2) 

#把图分为2行3列,当前在(0,0)位置画图
plt.subplot2grid((2, 3), (0, 0))

#data_train是DataFrame数据类型 bar表示柱形图
data_train.Survived.value_counts().plot(kind='bar')

plt.plot(randn(30).cumsum(), 'ko--') #k表示颜色,o表示标记强调数据点,--表示线条类型
plt.plot(randn(30).cumsum(), color='k', linestyle='dashed', marker='o') #和上面等价

设置轴标签 刻度

  • xlim控制图标的范围,plt.xlim()返回当前X轴范围,plt.xlim([0, 10]).我们也可以用过subplot的实例ax,如ax.get_xlim和ax.set_xlim来获取设置
  • set_xticks控制刻度位置
  • set_xticklabels控制刻度上面的标签
    实例
fig = plt.figure()
ax = fig.add_subplot(2, 2, 1)
ax.plot(np.random.randn(1000).cumsum(), 'ko--')
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
labels = ax.set_xticklabels(['one', 'two', 'three', '
<think>嗯,用户想学习如何用Python绘制带有双轴的组合图表,使用matplotlib和seaborn。首先,我需要确定用户的需求是什么。他们可能在数据分析中遇到了需要同时展示两种不同量纲的数据的情况,比如销售额和增长率,或者温度和湿度随时间的变化。这时候双轴图就很有用了,可以在一张图上直观显示两者的关系。 接下来,我得回忆一下matplotlib和seaborn中创建双轴图的方法。matplotlib可以通过twinx()来创建第二个y轴,而seaborn可能更倾向于结合matplotlib的API使用,因为seaborn本身可能没有直接的双轴函数,但可以配合使用。 然后,用户提到的组合图可能包括折线图、柱状图等的结合。比如,左侧y轴用柱状图表示销售量,右侧y轴用折线图表示增长率。这样的组合能有效传达信息。需要确保两个轴的数据不会互相覆盖,颜色和样式要区分开。 还要考虑用户可能需要的定制化设置,比如图例的位置、标题、轴标签、颜色风格等。特别是用户提到希望图表美观,可能需要使用seaborn的样式设置,比如sns.set_style()来调整整体风格,让图表看起来更专业。 另外,用户提供的引用中有提到双轴图、堆积条形图、多子图等示例,可能需要参考这些内容来给出具体的代码示例。比如引用[3]中的动态风格折线图,可能需要调整线条样式、添图例、设置双轴标签等步骤。 还需要注意代码的清晰度,用户可能希望代码结构清晰,注释详细,方便他们理解和修改。比如先创建画布和主轴,然后用twinx()创建副轴,分别绘制不同的图表类型,设置标签和标题,最后调整布局防止重叠。 另外,可能要考虑数据的处理部分。用户提到数据分析,可能需要先导入数据,进行必要的处理,比如计算统计量或时间序列转换,然后再进行可视化。不过用户的问题主要集中在绘图上,所以示例代码可能不需要复杂的数据处理步骤,用生成的数据演示即可。 最后,用户可能希望了解如何结合seaborn和matplotlib的优势,比如使用seaborn的简洁语法生成图表,再用matplotlib进行细节调整。例如,用seaborn的barplot绘制柱状图,再用matplotlib的twinx()添折线图。 总结下来,回答的结构应该是先介绍双轴图的应用场景,然后分步骤讲解如何用matplotlib和seaborn创建组合图,提供示例代码,并解释每个部分的作用。同时,可能需要提醒用户注意颜色搭配、图例位置、轴标签清晰等问题,以确保图表的美观和可读性。</think>### Python双轴组合图绘制方法 双轴组合图适用于展示两个量纲不同的数据集关系,例如销售额(柱状图)与增长率(折线图)的对比。以下是使用Matplotlib和Seaborn的实现步骤: --- #### **方法1:Matplotlib基础实现** ```python import matplotlib.pyplot as plt import numpy as np # 生成示例数据 x = np.arange(1, 6) y1 = [20, 35, 30, 45, 40] # 柱状图数据(如销售额) y2 = [5, 15, 10, 25, 20] # 折线图数据(如增长率) fig, ax1 = plt.subplots(figsize=(8,4)) # 绘制柱状图(左轴) ax1.bar(x, y1, color='#8ECFC9', label='销售额') ax1.set_xlabel('月份') ax1.set_ylabel('销售额(万元)', color='#8ECFC9') ax1.tick_params(axis='y', labelcolor='#8ECFC9') # 创建右轴并绘制折线图 ax2 = ax1.twinx() ax2.plot(x, y2, color='#FFBE7A', marker='o', label='增长率') ax2.set_ylabel('增长率(%)', color='#FFBE7A') ax2.tick_params(axis='y', labelcolor='#FFBE7A') # 合并图例并优化布局 fig.legend(loc='upper left', bbox_to_anchor=(0.1, 0.9)) plt.title('销售额与增长率双轴图') plt.tight_layout() plt.show() ``` **关键点** - 通过`twinx()`创建共享x轴的第二个y轴[^3] - 使用不同颜色区分左右轴标签和刻度 - `bbox_to_anchor`调整图例位置避免遮挡数据 --- #### **方法2:Seaborn风格优化** 结合Seaborn提升图表美观度: ```python import seaborn as sns sns.set_style("whitegrid") # 设置Seaborn风格 fig, ax1 = plt.subplots(figsize=(8,4)) # 柱状图(Seaborn增强) sns.barplot(x=x, y=y1, ax=ax1, palette="Blues_d", alpha=0.8) ax1.set_ylabel('销售额(万元)') # 折线图(Matplotlib绘制) ax2 = ax1.twinx() ax2.plot(x, y2, color='red', linestyle='--', marker='s', linewidth=2) ax2.set_ylabel('增长率(%)') plt.title('Seaborn风格双轴图') plt.show() ``` **优势** - `sns.set_style`简化背景网格设计[^1] - `palette`参数快速调整柱状图颜色层次 --- #### **应用场景与注意事项** 1. **适用场景** - 时间序列中对比绝对值和变化率(如温度与湿度) - 多维度指标关联分析(如用户量与服务器负载) 2. **避坑指南** - 避免左右轴量纲差异过大导致视觉误导 - 折线图数据点需与柱状图x轴对齐 - 使用对比色增强可读性[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值