前言:针对阿里天池赛的世界杯可视化,表的内容我不赘述了,既然能查到这里肯定知道是什么,我就讲一下第一位大佬的代码,反正我是啥也不懂,我直接抄他的进行复现
%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
函数非常强大,允许您自定义几乎所有绘图元素的样式。下面是一些常见的设置类别及其用途:
- 字体(Font)设置
- ‘font.family’: 字体系列,如 ‘serif’, ‘sans-serif’, ‘monospace’ 等。
- ‘font.size’: 字体大小。
- ‘font.weight’: 字体粗细,如 ‘normal’, ‘bold’, ‘light’ 等。
- ‘font.style’: 字体样式,如 ‘normal’, ‘italic’。
- 线条(Lines)设置
- ‘lines.linewidth’: 线条宽度。
- ‘lines.linestyle’: 线条样式,如 ‘-’, ‘–’, ‘-.’ 等。
- ‘lines.color’: 线条颜色。
- ‘lines.marker’: 数据点标记样式,如 ‘o’, ‘s’, ‘^’ 等。
- 图表(Figure)设置
- ‘figure.figsize’: 图表的尺寸(宽度、高度),单位为英寸。
- ‘figure.dpi’: 图表的分辨率,单位为每英寸点数(DPI)。
- 轴(Axes)设置
- ‘axes.labelsize’: 轴标签的字体大小。
- ‘axes.titlesize’: 轴标题的字体大小。
- ‘axes.facecolor’: 轴的背景颜色。
- 刻度(Ticks)设置
- ‘xtick.labelsize’: x轴刻度标签的大小。
- ‘ytick.labelsize’: y轴刻度标签的大小。
- ‘xtick.color’, ‘ytick.color’: x轴和y轴刻度的颜色。
- 网格(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()
查看基本属性
- 形状 (Shape):
df.shape
,返回一个元组,表示 DataFrame 的行数和列数。 - 列名 (Column Names):
df.columns,
返回一个包含 DataFrame 列名的 Index 对象。 - 数据类型 (Data Types):
df.dtypes,
返回一个 Series,显示每列的数据类型。 - 索引 (Index):
df.index,
返回 DataFrame 的索引。