使用pandas
我可以轻松制作线图:
import pandas as pd
import numpy as np
%matplotlib inline # to use it in jupyter notebooks
df = pd.DataFrame(np.random.randn(50, 4),
index=pd.date_range('1/1/2000', periods=50), columns=list('ABCD'))
df = df.cumsum()
df.plot();
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何将数据绘制为线上的点,如下例所示:
这个matplotlib示例似乎暗示了方向,但我找不到如何使用pandas绘图功能来做到这一点.我特别感兴趣的是学习如何使用pandas,因为我一直在使用数据帧.
有线索吗?
在R中有一个非常好的包.在python中,我能想到的最好的就是这个,使用squarify
包(灵感来自关于如何做树图的帖子):
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns # just to have better line color and width
import squarify
# for those using jupyter notebooks
%matplotlib inline
df = pd.DataFrame({
'v1': np.ones(100),
'v2': np.random.randint(1, 4, 100)})
df.sort_values(by='v2', inplace=True)
# color scale
cmap = mpl.cm.Accent
mini, maxi = df['v2'].min(), df['v2'].max()
norm = mpl.colors.Normalize(vmin=mini, vmax=maxi)
colors = [cmap(norm(value)) for value in df['v2']]
# …
Run Code Online (Sandbox Code Playgroud) 在bash和zsh我曾经写过:
alias nb='cd /home/lincoln/Dropbox/nupis/ && jupyter notebook'
Run Code Online (Sandbox Code Playgroud)
但是在xonsh中,这会返回一个错误,指出找不到该命令.关于别名的教程部分说我应该做类似的事情:
aliases['g'] = 'git status -sb'
Run Code Online (Sandbox Code Playgroud)
我只能在一个命令的情况下完成这项工作,但是当我尝试我的bash示例的两个命令时,它抱怨我给了太多的输入cd
.
注意:我知道我可以从其他shell导入别名,但我有兴趣学习在xonsh中执行此操作.
我想对Jupyter笔记本中的每个图使用相同的颜色图/颜色周期/调色板。
使用seaborn软件包,我可以使用:
seaborn.set_palette('Set1')
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以只使用matplotlib而不使用seaborn?
我知道如何分别为每个图定义颜色图,并且我知道预定义的样式(例如ggplot),但是我找不到一种可以一次仅对所有图定义颜色图的方法。
我的目的是为我的学生简化代码,因此set_palette()
不要使用后面的复杂代码。
编辑:如已接受的答案所示,我将颜色映射与颜色循环混淆。
matplotlib ×3
python ×3
bokeh ×1
pandas ×1
plot ×1
seaborn ×1
shell ×1
waffle-chart ×1
xonsh ×1