15丨一次学会Python数据可视化的10种技能
该思维导图由 AI 生成,仅供参考
可视化视图都有哪些?
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了Python数据可视化的10种技能,包括散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图、二元变量分布和成对关系。作者首先对可视化视图进行了分类,包括比较、联系、构成和分布,以及单变量分析和多变量分析。然后详细介绍了每种可视化技术的绘制方法,包括使用Matplotlib和Seaborn两种工具包进行绘制。通过示例代码和图示,读者可以快速了解每种可视化技术的绘制方法和效果。整体而言,本文以简洁清晰的语言介绍了Python数据可视化的基本技能,适合初学者快速了解和掌握。文章内容涵盖了Python数据可视化的基本技能,通过具体的代码示例和图示,读者可以快速了解散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图、二元变量分布和成对关系的绘制方法和效果。这些技能对于数据分析和可视化的初学者来说非常实用,有助于他们快速掌握Python数据可视化的基本技能。文章还提出了两道思考题,鼓励读者动手练习并分享答案,为读者提供了更多实践机会。
《数据分析实战 45 讲》,新⼈⾸单¥59
全部留言(68)
- 最新
- 精选
- 建强置顶思考题1:对车祸数据成对关系的的探索,程序代码如下: #车祸数据分析 import matplotlib.pyplot as plt import seaborn as sns import pandas as pd # 数据准备 crashes = sns.load_dataset('car_crashes') crashes_data = pd.DataFrame(crashes) # 用 Seaborn 画成对关系 sns.pairplot(crashes) plt.show() 思考题2:模拟企业隐患数据分析,代码如下: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np #定义生成隐患数量函数 def GenerateHDNum(hdtimes): #hdtimes表示要生成多少隐患数量 HD_NumList = list(pd.Series(np.random.rand(hdtimes))) return [int(x * 100) for x in HD_NumList] #数据准备函数 def MakeData(): #创建以月份为单位的时间索引 dti = pd.date_range(start='2017-01-01', end='2018-12-31', freq='M') monthlist = [str(x * 100 + y) for x,y in zip(dti.year,dti.month)] hdtimes = len(monthlist) #生成各种隐患数量 NormalHD = GenerateHDNum(hdtimes) ImportHD = GenerateHDNum(hdtimes) HDNum = { 'Normal': NormalHD ,'Import': ImportHD} HD_Frame = pd.DataFrame(data = HDNum, index=monthlist) print(HD_Frame) return HD_Frame def AnalyData(HDSet,AnalyType='0'): #AnalyType取值:1:成对关系图;2:散点图;3:核密度图;4:Hexbin图 #成对关系图 if AnalyType == '1': sns.pairplot(HDSet) #散点图 if AnalyType == '2': sns.jointplot(x='Normal', y='Import', data=HDSet, kind='scatter') #核密度图 if AnalyType == '3': sns.jointplot(x='Normal', y='Import', data=HDSet, kind='kde') #Hexbin图 if AnalyType == '4': sns.jointplot(x='Normal', y='Import', data=HDSet, kind='hex') plt.show() def ShowMenu(): print('='*20) print('1.显示成对关系图') print('2.显示散点图') print('3.显示核密度图') print('4.显示Hexbin图') print('R.换一批数据') print('0.退出') print('='*20) return input('请输入命令:') def main(): HDSet = MakeData() while True: command = ShowMenu() if command == '0': break elif command == 'R': HDSet = MakeData() else: AnalyData(HDSet, command) main()
作者回复: 建强同学很不错的作业分享,大家都可以看下
2019-08-18413 - sxpujs在 Mac 下设置中文字体,可以使用以下路径: # 设置中文字体 font = FontProperties(fname="/System/Library/Fonts/STHeiti Medium.ttc", size=14)
作者回复: 很好的分享
2019-04-219 - 跳跳第一题:seaborn car_crashes成对关系探索 iris=sns.load_dataset("car_crashes") sns.pairplot(iris) plt.show() 第二题:由第一题可以看出酒精和速度由类似线性关系,因此做酒精和速度二元变量的分布图 iris=sns.load_dataset("car_crashes") print(iris.head(10)) sns.jointplot(x='alcohol',y='speeding',data=iris,kind='scatter') sns.jointplot(x='alcohol',y='speeding',data=iris,kind='kde') sns.jointplot(x='alcohol',y='speeding',data=iris,kind='hex') 碎碎念一下:为啥留言不支持图片?难受
作者回复: 哈哈 支持图片这个需要技术来做
2019-01-164 - jion你好,练习成对关系图时,除下如下错误,是何原因? import matplotlib.pyplot as plt import seaborn as sns from sklearn import datasets # 数据准备 iris_datas = datasets.load_iris() iris = pd.DataFrame(iris_datas.data, columns=['SpealLength', 'Spealwidth', 'PetalLength', 'PetalLength']) print(iris.shape,"\n",iris) # 用Seaborn画成对关系 sns.pairplot(iris) 出现如下错误:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
作者回复: 原因是seaborn中有自己的iris数据集API:iris = sns.load_dataset('iris') seaborn中多了代表品种的“species”列,该列为字符串类型的离散值。当你使用sns.pairplot(iris)时,seaborn会按照自带的数据集格式来绘制,由于sklearn中的iris数据集没有“species”列,从而才会报错。你可以把sklearn中的iris的数据集的列名全部改为其他列名,即可正常使用sns.pairplot(iris)进行绘制。
2021-03-063 - 求知鸟python在慢慢追赶R,我的R语言分析水平停止了,python水平在往上涨,现在的状态是,有老师的课就学课,没有就看《精益数据分析》。
作者回复: 嗯嗯 慢慢来 坚持就有收获
2019-01-1633 - 小强各种场景的视图,试用什么场景,怎么分析,例子太少了,理解不够深。
作者回复: 在后面的例子中我们还会常用到。
2020-07-1022 - 夕子car_crashes = sns.load_dataset('car_crashes') car_crashes.head(10) # 成对关系探索 sns.pairplot(car_crashes) plt.show() # 画散点图 sns.jointplot(x = 'speeding', y = 'total', data = car_crashes, kind = 'scatter') plt.show() # 画核密度图 sns.jointplot(x = 'speeding', y = 'total', data = car_crashes, kind = 'kde') plt.show() # 画hexbin图 sns.jointplot(x = 'speeding', y = 'total', data = car_crashes, kind = 'hex') plt.show()
作者回复: 很棒
2021-03-181 - 丁思森请问一下,有人在运行sns.load_dataset('tips'),遇到报错urllib.error.URLError: <urlopen error [Errno 11004] getaddrinfo failed>么?这里直接加载数据集会报错,你们是怎么解决的?
作者回复: seaborn的数据集需要科学上网才能使用load_dataset
2020-06-1121 - 毛毛🐛虫🌻热力图那个是颜色越浅,值越大么?
作者回复: 对 右侧有坐标对照
2019-01-1821 - 拉我吃# coding:utf-8 import matplotlib.pyplot as plt import seaborn as sns # Data Prep car_crashes = sns.load_dataset('car_crashes') sns.pairplot(car_crashes) plt.show() # plot with seaborn (scatter, kde, hex) sns.jointplot(x='alcohol', y='speeding', data=car_crashes, kind='scatter') sns.jointplot(x='alcohol', y='speeding', data=car_crashes, kind='kde') sns.jointplot(x='alcohol', y='speeding', data=car_crashes, kind='hex') plt.show() 二元关系选了喝酒和超速的对比,基本上在大部分区间下是线性关系,就是喝得多速度快:)
作者回复: 加油~
2019-01-171