Python数据可视化matplotlib(一)—— 图表的基本元素
2018-03-31 23:42
1216 查看
Python数据可视化matplotlib(一)—— 图表的基本元素
图表创建
plt.show()
# 图表窗口1 → plt.show() plt.plot(np.random.rand(10)) plt.show() # 直接生成图表
魔法函数
% matplotlib inline 嵌入图表
# 图表窗口2 → 魔法函数,嵌入图表 %matplotlib inline x = np.random.randn(1000) y = np.random.randn(1000) plt.scatter(x, y) # 直接嵌入图表,不用plt.show() # <matplotlib.collections.PathCollection at ...> 代表该图表对象
% matplotlib notebook 弹出可交互的matplotlib窗口
# 图表窗口3 → 魔法函数,弹出可交互的matplotlib窗口 % matplotlib notebook s = pd.Series(np.random.randn(100)) s.plot(style = 'k--o',figsize=(10,5)) # 可交互的matplotlib窗口,不用plt.show() # 可做一定调整
在这里要自己尝试看看什么效果
% matplotlib qt5 弹出matplotlib控制台
# 图表窗口4 → 魔法函数,弹出matplotlib控制台 % matplotlib qt5 df = pd.DataFrame(np.random.rand(50,2),columns=['A','B']) df.hist(figsize=(12,5),color='g',alpha=0.8) # 可交互性控制台 # 如果已经设置了显示方式(比如notebook),需要重启然后再运行魔法函数 # 网页嵌入的交互性窗口 和 控制台,只能显示一个 #plt.close() # 关闭窗口 #plt.gcf().clear() # 每次清空图表内内容
在这里要自己尝试看看什么效果
图表的基本元素
图表的基本元素
# 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签等 df = pd.DataFrame(np.random.rand(10,2), columns=['A','B']) # print(df) # print('=========') f = plt.figure(figsize=(10, 10)) #生成窗口对象,并设置大小 fig = df.plot(figsize=(8, 6)) # 创建图表对象,设置大小并赋值给fig # print(fig, type(fig)) # print('---------') # print(f, type(f)) plt.title('aa') # 表头 plt.xlabel('x') # x轴标签 plt.ylabel('y') # y轴标签 plt.legend(loc = 'best') # 显示图例,loc表示位置 # 'best' : 0, (only implemented for axes legends)(自适应方式) # 'upper right' : 1, # 'upper left' : 2, # 'lower left' : 3, # 'lower right' : 4, # 'right' : 5, # 'center left' : 6, # 'center right' : 7, # 'lower center' : 8, # 'upper center' : 9, # 'center' : 10, plt.xlim([0,10]) # x轴边界 plt.ylim([0,1.1]) # y轴边界 plt.xticks(range(10)) # 设置x刻度 plt.yticks([0,0.2,0.4,0.6,0.8,1.0,1.2]) # 设置y刻度 fig.set_xticklabels('%.1f'%i for i in range(10))# x轴刻度标签 fig.set_yticklabels("%.2f" %i for i in [0,0.2,0.4,0.6,0.8,1.0,1.2]) # y轴刻度标签 # 范围只限定图表的长度,刻度则是决定显示的标尺 → 这里x轴范围是0-12,但刻度只是0-9,刻度标签使得其显示1位小数 # 轴标签则是显示刻度的标签 # print(fig,type(fig)) # 查看表格本身的显示方式,以及类别
[Text(0,0,'0.00'), Text(0,0,'0.20'), Text(0,0,'0.40'), Text(0,0,'0.60'), Text(0,0,'0.80'), Text(0,0,'1.00'), Text(0,0,'1.20')]
### 图表的基本样式
#通过ndatty 创建图表 x = np.linspace(-np.pi, np.pi, 256, endpoint=True) c,s = np.cos(x), np.sin(x) plt.plot(c) plt.plot(s) plt.grid(True, linestyle='--', color='gray', linewidth='0.5', axis='both') # 创建格网 # 显示网格 # linestyle:线型 # color:颜色 # linewidth:宽度 # axis:x,y,both,显示x/y/两者的格网 plt.tick_params(bottom='on', top='on', left='on', right='on') # 刻度显示 import matplotlib matplotlib.rcParams['xtick.direction'] = 'out' matplotlib.rcParams['ytick.direction'] = 'in' # 设置刻度的方向,in,out,inout # 这里需要导入matploltib,而不仅仅导入matplotlib.pyplot frame = plt.gca() plt.axis('on') # 关闭坐标轴 frame.axes.get_xaxis().set_visible(True) frame.axes.get_yaxis().set_visible(False)
图表样式的创建
linestyle 线样式
#线样式 plt.plot([i**2 for i in range(100)], linestyle='-.') # '-' solid line style # '--' dashed line style # '-.' dash-dot line style # ':' dotted line style
marker 标记样式
# marker参数 s = pd.Series(np.random.randn(10).cumsum()) s.plot(linestyle='-.', marker='D') # '.' point marker # ',' pixel marker # 'o' circle marker # 'v' triangle_down marker # '^' triangle_up marker # '<' triangle_left marker # '>' triangle_right marker # '1' tri_down marker # '2' tri_up marker # '3' tri_left marker # '4' tri_right marker # 's' square marker # 'p' pentagon marker # '*' star marker # 'h' hexagon1 marker # 'H' hexagon2 marker # '+' plus marker # 'x' x marker # 'D' diamond marker # 'd' thin_diamond marker # '|' vline marker # '_' hline marker
color 颜色
# color参数 plt.hist(np.random.randn(100), color='g', alpha=0.6) # alpha:0-1,透明度 # 常用颜色简写:red-r, green-g, black-k, blue-b, yellow-y df = pd.DataFrame(np.random.randn(1000, 4), columns=list('ABCD')) df = df.cumsum() df.plot(style='--', alpha= 0.8, colormap='BrBG_r' ) # colormap:颜色板,包括: # Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, # Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, # PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, # RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, # YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, # cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, # gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, # gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, inferno, inferno_r, jet, jet_r, magma, magma_r, nipy_spectral, # nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, seismic, seismic_r, spectral, # spectral_r ,spring, spring_r, summer, summer_r, terrain, terrain_r, viridis, viridis_r, winter, winter_r # 其他参数见“颜色参数.docx”
style 风格
# style参数,可以包含linestyle,marker,color ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2017', periods=1000)) ts.plot(style='--gx', grid=True) # style → 风格字符串,这里包括了linestyle(-),marker(.),color(g) # plot()内也有grid参数
# 整体风格样式 import matplotlib.style as psl print(plt.style.available) # 查看样式列表 psl.use('bmh') ts = pd.Series(np.random.randn(100).cumsum(), index=pd.date_range('1/1/2017', periods=100)) ts.plot(style='-g.', grid=True)
['bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark-palette', 'seaborn-dark', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'seaborn', 'Solarize_Light2', 'tableau-colorblind10', '_classic_test']
刻度,注解及图表输出
刻度
主刻度(major)与次刻度(minor)from matplotlib.ticker import MultipleLocator, FormatStrFormatter t = np.arange(0.0, 100.0, 1) s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01) ax = plt.subplot(111) #一般子啊ax中设置,不在plot中设置 plt.plot(t, s,'--*', color='b') plt.grid(True, linestyle='-', color='gray', linewidth='0.5', axis='both') #网格 xmajorLocator = MultipleLocator(10) #将x轴主刻度标签设置为10的倍数 xmajorFormatter = FormatStrFormatter('%.0f') #设置x轴标签文本的格式 xminorLocator = MultipleLocator(5) #将X轴次刻度标签设置为5的倍数 ymajorlocator = MultipleLocator(0.5) #将y轴主刻度设置为0.5的倍数 ymajorFormatter = FormatStrFormatter('%.0f') #将Y轴刻度标签设置格式 yminorlocator = MultipleLocator(0.1) #将y轴次刻度设置为0.1的倍数 ax.xaxis.set_major_locator(xmajorLocator) #设置X轴主刻度 ax.xaxis.set_major_formatter(xmajorFormatter) #设置x轴主刻度标签 ax.xaxis.set_minor_locator(xminorLocator) #设置X轴次刻度 # ax.yaxis.set_major_locator(ymajorlocator)
注释
# 注释 df = pd.DataFrame(np.random.rand(10,2)) df.plot(style='-gx') plt.text(2, 0.4,'nihao',fontsize=10) #注释 plt.text(横坐标,纵坐标,文本)
图表输出
df = pd.DataFrame(np.random.randn(100,4),columns=list('ABCD')) df = df.cumsum() df.plot(style = '--', alpha = 0.5) plt.legend(loc = 'best') plt.savefig('E:\\DataScience\\python\\数据可视化包\\pic.png', dpi = 800, # bbox_inches = 'tight', facecolor = 'w', edgecolor = 'blue') # 可支持png,pdf,svg,ps,eps…等,以后缀名来指定 # dpi是分辨率 # bbox_inches:图表需要保存的部分。如果设置为‘tight’,则尝试剪除图表周围的空白部分。 # facecolor,edgecolor: 图像的背景色,默认为‘w’(白色)
相关文章推荐
- Python数据可视化图像库MatPlotLib基本图像操作
- python—matplotlib数据可视化实例注解系列-----之柱状图
- Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据
- Python seaborn matplotlib 对数据进行图表分析
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- python 数据可视化 matplotlib学习一:绘制简单的折线图
- Python数据挖掘04---matplotlib数据可视化分析
- 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
- Python数据可视化之Matplotlib基础
- 7057-1.Python数据可视化:利用matplotlib中的subplot进行图中图展示
- Python数据分析之可视化一matplotlib(常用方法)
- matplotlib数据可视化入门-python
- python 数据可视化 matplotlib学习三:生成随机漫步数据并使用matplotlib呈现
- 用Python获取股价数据,通过Matplotlib可视化
- Python库(1):matplotlib数据可视化知识点
- python—matplotlib数据可视化实例注解系列-----之plot图线型设置
- python爬虫webdriver.Chrome 数据可视化简单案例matplotlib
- python 数据可视化 matplotlib学习二 : 对折线图使用颜色映射
- python数据可视化matplotlib的使用
- python的数据可视化库 matplotlib 和 pyecharts