世界杯可视化part1

前言:针对阿里天池赛的世界杯可视化,表的内容我不赘述了,既然能查到这里肯定知道是什么,我就讲一下第一位大佬的代码,反正我是啥也不懂,我直接抄他的进行复现

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import jn
from IPython.display import display, clear_output
import time
import pandas as pd
import seaborn as sns

这些都是要用的三方库

开始绘制

我自己就是个小白,所以我就按照小白的视角来讲

hist_worldcup=pd.read_csv('downloads/WorldCupsSummary.csv')
font = {
  'weight': 'bold',
  'size': '20'
}
plt.rc('font', **font)
plt.title('Attendance Number')

这个读取文件+布局设置(不设置也可以,个人认为自己画图不设置完全不影响,不过得知道有这个东西,我把这个放在最后面讲)+标题

fig, ax= plt.subplots(1,2,figsize=(14,10))

plt.subplots函数

这玩意我单独讲,因为我个人感觉很重要,不要你觉得只要我觉得,简单来讲就是1,2代表了,一行两列的表,1*2,之前的博客中提到,然后就是figsize的设置这个很好理解,就是一个对画布长宽的设置

plt.title('Attendance Number')
# hist_worldcup.plot.scatter(x='Attendance',y='Year',ax=ax,zorder=2,s=100) #使用 Pandas 的 plot 方法
ax.scatter(hist_worldcup['Attendance'],hist_worldcup['Year']) #使用 Matplotlib Axes 对象的方法
#

我们在这里可以看到有两个画图的方法,都在注释里面了,然后我们讲一下为什么先绘制图,在进行配置参数,我们在绘图的时候,反正我自己一直以为都是先配置好参数,用什么颜色的线,各种乱七八糟的都是配置完,然后绘图的时候就用起来,但不是这样的,我们在Python中就是要先把图画出来(我们是看不到的,但是机器认为他看到了),解释器就在进行参数的配置,对原来的图进行修改,如果不想看这些文字,那就记住,先画图,在配置。

# ax.spines['right'].set_visible(False) 
# ax.spines['top'].set_visible(False)
# ax.spines['left'].set_visible(False)
# ax.spines['bottom'].set_visible(False)
#上下左右的边框是否可见

ax.set_ylabel(None)
ax.set_xlabel(None)
#xy轴的标签,想添加的自己写字符串上去就行

ax.grid(visible=False) #这个图有没有刻度线
ax.tick_params(axis='both', which='major', labelsize=15)


ax.set_yticks(hist_worldcup['Year'].tolist())
ax.set_xticks([500000,1000000,1500000,2000000,2500000,3000000,3500000,4000000])
ax.ticklabel_format(style='plain')

plt.tick_params(bottom=False, left=False)

tick_params函数

axis=‘both’: 这指定更改应用于哪个轴。‘both’ 表示更改将同时应用于 x 轴和 y 轴。如果您只想更改 x 轴或 y 轴,可以分别使用 ‘x’ 或 ‘y’。
which=‘major’: 这指定是更改主刻度 (‘major’) 还是次刻度 (‘minor’),或是两者都更改 (‘both’)。在这个例子中,只有主刻度被更改。
labelsize=15: 这设置刻度标签的字体大小为 15。刻度标签是指轴上刻度旁边的数字或文本。

ax.set_yticks函数

这个看着好理解吧,就是对y轴进行修改,ax.set_yticks() 函数用于设置 y 轴上的刻度位置。这个函数允许你指定在 y 轴上应该放置刻度的具体位置。通过使用这个函数,你可以精确地控制 y 轴刻度的显示位置,这对于定制化图表特别有用。

ax.ticklabel_format

# 设置 y 轴刻度标签为科学计数法
ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))

# 设置刻度标签格式为普通数字格式
ax.ticklabel_format(style='plain')

plt.rc

在 Matplotlib 中,plt.rc 函数用于设置图表的全局参数,影响所有后续创建的图表的外观和行为。这些设置涉及多个方面,包括但不限于图表的样式、字体、颜色、线条类型等。

plt.rc 函数非常强大,允许您自定义几乎所有绘图元素的样式。下面是一些常见的设置类别及其用途:

  1. 字体(Font)设置
  • ‘font.family’: 字体系列,如 ‘serif’, ‘sans-serif’, ‘monospace’ 等。
  • ‘font.size’: 字体大小。
  • ‘font.weight’: 字体粗细,如 ‘normal’, ‘bold’, ‘light’ 等。
  • ‘font.style’: 字体样式,如 ‘normal’, ‘italic’。
  1. 线条(Lines)设置
  • ‘lines.linewidth’: 线条宽度。
  • ‘lines.linestyle’: 线条样式,如 ‘-’, ‘–’, ‘-.’ 等。
  • ‘lines.color’: 线条颜色。
  • ‘lines.marker’: 数据点标记样式,如 ‘o’, ‘s’, ‘^’ 等。
  1. 图表(Figure)设置
  • ‘figure.figsize’: 图表的尺寸(宽度、高度),单位为英寸。
  • ‘figure.dpi’: 图表的分辨率,单位为每英寸点数(DPI)。
  1. 轴(Axes)设置
  • ‘axes.labelsize’: 轴标签的字体大小。
  • ‘axes.titlesize’: 轴标题的字体大小。
  • ‘axes.facecolor’: 轴的背景颜色。
  1. 刻度(Ticks)设置
  • ‘xtick.labelsize’: x轴刻度标签的大小。
  • ‘ytick.labelsize’: y轴刻度标签的大小。
  • ‘xtick.color’, ‘ytick.color’: x轴和y轴刻度的颜色。
  1. 网格(Grid)设置
  • ‘grid.color’: 网格线颜色。
  • ‘grid.linestyle’: 网格线样式。
  • ‘grid.linewidth’: 网格线宽度。

7. 图例(Legend)设置

  • ‘legend.fontsize’: 图例的字体大小。
  • ‘legend.loc’: 图例的位置。

使用方法

使用 plt.rc 设置这些参数时,通常指定设置的类别和键值对字典。例如,设置全局字体大小和粗细:

plt.rc('font', size=12, weight='bold')

这会将所有图表的字体大小设置为12,字体粗细设置为粗体。

import matplotlib.pyplot as plt
import numpy as np

# 设置全局图表参数
plt.rcParams.update({
    'font.size': 12,               # 整体字体大小
    'font.family': 'serif',        # 字体系列
    'font.style': 'italic',        # 字体样式
    'axes.titlesize': 14,          # 轴标题大小
    'axes.labelsize': 12,          # 轴标签大小
    'axes.facecolor': 'lightgray', # 轴背景颜色
    'lines.linewidth': 2,          # 线条宽度
    'lines.linestyle': '-.',       # 线条样式
    'lines.color': 'blue',         # 线条颜色
    'figure.figsize': (10, 6),     # 图表尺寸(宽度、高度)
    'figure.dpi': 100,             # 图表分辨率(DPI)
    'xtick.direction': 'out',      # x轴刻度线方向
    'xtick.color': 'red',          # x轴刻度线颜色
    'ytick.direction': 'in',       # y轴刻度线方向
    'ytick.color': 'green',        # y轴刻度线颜色
    'grid.linestyle': '--',        # 网格线样式
    'grid.linewidth': 0.5,         # 网格线宽度
    'grid.color': 'gray',          # 网格线颜色
    'legend.fontsize': 10,         # 图例字体大小
    'legend.loc': 'upper left'     # 图例位置
})

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建折线图
plt.plot(x, y)
plt.title('Line Plot Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.grid(True)

# 显示图表
plt.show()

查看基本属性

  1. 形状 (Shape): df.shape,返回一个元组,表示 DataFrame 的行数和列数。
  2. 列名 (Column Names): df.columns,返回一个包含 DataFrame 列名的 Index 对象。
  3. 数据类型 (Data Types): df.dtypes,返回一个 Series,显示每列的数据类型。
  4. 索引 (Index): df.index,返回 DataFrame 的索引。
  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值