数据可视化各个图表

本文详细介绍了使用Python进行数据可视化的各种图表,包括阶梯图、折线图、散点图及其变体、柱形图、饼图、气泡图、茎叶图、直方图和盒须图,以及雷达图的绘制方法和关键参数。通过这些图表,可以有效地展示和理解数据。
摘要由CSDN通过智能技术生成

阶梯图

import pandas as pd
from matplotlib import pyplot as plt

postage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv")

fig, ax=plt.subplots(figsize=(10, 4))
ax.step(postage["Year"],postage["Price"], where='post')

# 设置标题
ax.set_title("US Postage Fee")
# 设置x轴刻度
ax.set_xticks(postage["Year"])
# 去除y轴刻度
# ax.set_yticks([])
# 去除边框
ax.spines["top"].set_visible(False)
ax.spines["bottom"].set_visible(False)
ax.spines["left"].set_visible(False)
ax.spines["right"].set_visible(False)
# 为绘制的阶梯图添加文字注释
for i,j in zip(postage["Year"],postage["Price"]):
    ax.text(x=i, y=j+0.003, s=j)
fig.tight_layout()
plt.show()

 其中的where参数取值范围为为{'pre', 'post', 'mid'},默认值为'pre'。pre 、post 、mid代表阶梯所在位置分别在数据区间的前、后、中不同的位置

自动调整子图参数,使之填充整个图像区域:fig.set_tight_layout(True)

 

折线图

import pandas as pd
from matplotlib import pyplot as plt
# 自己寻找几组(至少两组)合适的连续型时间数据,使用折线图对该组数据在同一个子图内进行呈现。
# 根据数据的特点设置美观合理的图表标题、横纵轴标签、刻度范围、刻度标签等参数,使案例作品满足可视化设计的基本原则。
#读取文件
money = pd.read_csv(r'../data/hot-dog-stack-places.csv')
print(money)
#添加此代码可使用Matplotlib提供已经定义好的样式,比如,背景色,网格线,线条粗细,字号
plt.style.use('seaborn')
fig,ax = plt.subplots(figsize = (10,9))
#!!!!!!!!!绘制三条折线
ax1 = plt.plot(money['Year'],money['First'])
ax2 = plt.plot(money['Year'],money['Second'])
ax3 = plt.plot(money['Year'],money['Third'])
#中文注释
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#设置标题
ax.set_title("某一畅销电子产品售况图 - xxx", fontproperties='SimHei',fontsize=20)
#设置标签(横纵)
ax.set_ylabel('某一畅销电子产品售况',fontsize = 16)
ax.set_xlabel('月份',fontsize = 16)
#去掉顶部和右边的边框
ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False)
#设置横轴、纵轴刻度
ax.tick_params(axis = 'both',labelsize = 9)
#plt.savefig('TOP10评论点赞数-条形图.png')
plt.show()

散点图

 散点图1

import pandas as pd
from matplotlib import pyplot as plt

#1990-2020年中国GDP总值的变化情况散点图
#读取文件
# GDP = pd.read_csv(r"3数据文件/gdp-per-China-worldb (1).csv")
GDP = pd.read_csv(r"../data/gdp-per-China-worldb.csv")
# print(GDP)
#设置一张画布,宽10,高9
fig, ax = plt.subplots(figsize=(10,9))
#scatter散点图,Year为横坐标轴,GDP为纵坐标轴,s为点的大小,c为颜色,r=red,
# maker为点的样式,可选,默认值为o,alpha为点的透明度,0(透明)-1(不透明)
plt.scatter(GDP["Year"],GDP['GDP'],s=7,c='r',marker='o',alpha=0.5)
ax=plt.gca()
#设置标题名称,设置显示可以显示中文,字体大小为14
ax.set_title(u'1990-2020年中国GDP总值的变化情况散点图',fontproperties='SimHei',fontsize=16)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#设置横纵坐标的标签
ax.set_xlabel('年份',fontsize = 14)
ax.set_ylabel('GDP',fontsize = 14)
#最后将画布显示出来
plt.show()

matplotlib.pyplot.scatter( x , y , s = None , c = None , marker = None , cmap = None , norm = None , vmin = None , vmax = None , alpha = None , linewidths = None , * , edgecolors = None , plotnonfinite = False ,数据=无, ** kwargs )

常用的参数主要有x, y, s,c,maker和alpha等。

具体的参数作用及取值范围如下所示:

1.        x,y代表数据的位置 :数据类型为形如shape(n,)数组类型;

2.        s代表点的大小:标量或形如shape(n,)数组,默认值为20;

3.        c代表点的颜色:可以是色彩或颜色序列。注意c值不应该是一个单一的RGB数值或一个RGBA序列。

其中颜色参数如下b---blue, c---cyan, g---green, k---black, m-magenta, r---red, w---white, y---yellow;

4.        maker代表点的样式:marker属性,可选,默认值为’o’。可以是matplotlib.marker属性,标记的详细信息见https://matplotlib.org/stable/api/markers_api.html#module-matplotlib.markers;

5.        alpha代表点的透明度:alpha为浮点数,默认值:无,混合值,介于 0(透明)和 1(不透明)之间。

如果需要查看scatter函数的详细内容,可以参考matplotlib的官网文档关于scatter函数的相关内容,具体网址是:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatte

 散点图 + 拟合曲线

'''
分析2005年美国各州的犯罪率,入室盗窃和谋杀,
研究这两者之间是否存在某种联系?是否人口越多犯罪率越高?
'''
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
crime = pd.read_csv(r"rt数据文件/crimeRatesByState200.csv")
print(crime)
'''
# 消除可疑点,crime.state不等于‘United States’,
# 然后crime2.state 不等于 'District of Columbia'
'''
crime2 = crime[crime.state != 'United States']
crime2 = crime2[crime2.state != 'District of Columbia']
#设置横轴为muder谋杀,Y轴为burglary盗窃
x = crime2['murder']
y = crime2['burglary']
'''
# 调用scatter函数得到一个散点图实例,前面两个函数是x轴与y轴的数据来源,s是点的大小,
alpha表示点的透明度
'''
plt.scatter(x, y, s=2, c='b',marker='o',alpha=0.5)
plt.title("美国入室盗窃和谋杀两种犯罪率之间关系散点图(去除异常数据)")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
'''
polyfit为多项式曲线拟合函数,其中第一个参数为M个采样点的x坐标,
第二个参数为采样点的y坐标,deg为拟合多项式的度(阶数),有几根线,平面上的直线
'''
poly = np.polyfit(x, y, deg=1)
#polyval为求值函数可求的多项式poly在采样点x0出的y0
plt.plot(x, np.polyval(poly, x))
plt.show()

 散点矩阵图

#Seaborn它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
'''
本实例所使用的数据是2005年美国各州的犯罪率,
合计7种犯罪类型,即美国人口统计局公布的每10万人口中谋杀、抢劫和故意伤害等罪案的发生率。
'''
crime = pd.read_csv(r"../data/crimeRatesByState200.csv")
# 过滤掉全美平均值和哥伦比亚特区的数据   —— 移除某行
crime2 = crime[crime.state != 'United States']
crime2 = crime2[crime.state != 'District of Columbia']
#  分别为移除state列和population列数据  ——  移除某列数据
crime2 = crime2.drop(['state'], axis=1)
crime2 = crime2.drop(['population'], axis=1)
print(crime2)
# 绘制散点矩阵图
'''pairplot函数的第一个参数是指定数据开源,第二个参数是指定对角图(kde是密度图,hist是直方图),
第三个参数是设置使用回归。
'''
g = sns.pairplot(crime2, kind="reg")
plt.show()

 柱形图

柱状图1

#过去30年热狗大胃王比赛结果柱状图
import pandas as pd
from matplotlib import pyplot as plt

#读取文件
hotdog = pd.read_csv(r"../data/hot-dog-contest-winn.csv")
# print(hotdog)
#设置画布大小
fig, ax=plt.subplots(figsize=(10,9))
#设置画面布局,用bar函数绘制柱状图
#设置横坐标为Year值,纵坐标为Eaten值
plt.bar(hotdog['Year'],hotdog['Eaten'])

#x表示起始位置,color表示条形颜色,edgecolor表示条形边界颜色,x表示条形的坐标序列,height表示条形的高度序列
# plt.bar(x=hotdog['Year'],height=hotdog['Eaten'],color='b',edgecolor='k')
#设置标题名称,显示中文
ax.set_title(u'过去30年热狗大胃王比赛结果柱状图',fontproperties='SimHei',fontsize=16)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#设置横纵坐标轴
ax.set_xlabel(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值