利用jcvi绘制点图时遇到latex报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用jcvi绘制点图时遇到latex报错相关的知识,希望对你有一定的参考价值。
参考技术A 可以直接conda安装,记得在python2的环境下哦,3会报错。然后将bed进行去重复
最后我们得到了aquatica.uniq.bed和Nepcla.uniq.bed, 根据bed文件第4列就可以用于提取cds序列和蛋白序列。
最后就获得了这些文件
用 jcvi.compara.blastfilter 对结果进行过滤
最后输出aly_ath.blast.filtered用于做图
报错1:
由于服务器里没有这种字体
报错2:
这是由于服务器里面没有这个排版的软件
执行最后一条命令之后会出现下面的选项:
输入 I 然后回车进行安装
参考:
使用 seaborn 点图更改日期格式
【中文标题】使用 seaborn 点图更改日期格式【英文标题】:Date format changed using seaborn pointplot 【发布时间】:2020-10-10 07:03:38 【问题描述】:当我使用 seaborn 绘制点图时,x 轴上的日期变成了这种奇怪的格式2020-01-06T00:00:00.000000000
。在绘制此图之前,“当前年份周结束”列中的日期将转换为 DateTime 对象。我的另一个图表(线图)使用类似的输入和格式,但没有这个问题,日期类似于2020-01-06
。
有人知道如何解决这个问题吗?
*我在绘图中使用的total_us
数据框和sub
数据框是同一数据集的子集。在创建这两个子集之前,我在那个大数据集上转换了日期。所以total_us
和sub
的'Current Year Week Ending'列中的值应该具有相同的DateTime格式。
#create a pointplot to capture the variability
plt.figure(figsize = (8, 6))
sns.pointplot(x = 'Current Year Week Ending',
y = 'ASP Current Year',
hue ='Type',
data = sub,
markers=["o", "x"],
linestyles=["-", "--"])
plt.xticks(rotation=45, horizontalalignment='right', fontweight='light', fontsize='medium')
plt.ticklabel_format(style='plain', axis='y')
#create a lineplot
plt.figure(figsize=(10,7))
sns.lineplot(x='Current Year Week Ending',
y='Total Bulk and Bags Units',
hue='Type',
data = total_us);
plt.xticks(rotation=45, horizontalalignment='right', fontweight='light', fontsize='medium')
plt.ticklabel_format(style='plain', axis='y')
这是sub
的样子,因此“当前年份周结束”列中的值类似于“2020-01-06”。我不知道为什么当我绘制点图时它会改变。
【问题讨论】:
您使用的是两个不同的数据源...索引不同 嗨,苏菲,欢迎来到 SO!一般来说,最好提供Minimal, Reproducible Example 以帮助其他人重现您的问题。 对不起,我应该澄清一下。 total_us 数据帧和子数据帧是同一数据集的子集。在创建这两个子集之前,我在那个大数据集上转换了日期。@Derek O
Int64Index([ 10, 19, 24, 27, 29, 35, 36, 46, 55, 65, ... 1662, 1674, 1679, 1683, 1688, 1692, 1697 , 1707, 1715, 1725], dtype='int64', length=256) for sub.index
@ Derek O
Int64Index([ 30, 84, 138, 191, 246, 271, 353, 406, 462, 527, 569, 595, 678, 703, 784, 839, 895, 959, 1002, 1067, 1110, 1164, 1217, 1271, 1302, 1355, 1444, 1450, 1556, 1580, 1653, 1687], dtype='int64') for total_us。它们是数据集中的不同子集,因此索引不同。
【参考方案1】:
我认为您的日期列可能只包含这些尾随零,并且 seaborn 会根据情节上有多少空间来处理它。因此,请为您的日期列尝试以下操作:
sub.iloc[:,1] = sub.iloc[:,1].dt.strftime('Y/%m/%d')
如果由于某种原因不能解决问题(也许 seaborn 点图和线图在底层做了一些不同的事情),那么可能的解决方法是将文本 2020-01-06T00:00:00.000000000
拆分为字母 'T' 和之后扔掉尾随的零。我们可以利用sns.pointplot
返回一个matplotlib.Axes
对象(来自documentation)这一事实,将变量 ax 设置为等于您的点图:
ax = sns.pointplot(x = 'Current Year Week Ending',
y = 'ASP Current Year',
hue ='Type',
data = sub,
markers=["o", "x"],
linestyles=["-", "--"])
ax.set_xticklabels([date_text.get_text().split("T")[0] for date_text in ax.get_xticklabels()])
【讨论】:
以上是关于利用jcvi绘制点图时遇到latex报错的主要内容,如果未能解决你的问题,请参考以下文章
Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)