【发布时间】:2020-01-04 01:20:03
【问题描述】:
我是 Pandas 和 Matplotlib 的初学者,我对使用 pandas 时的绘图格式有一些疑问。我有以下区域图代码:
import pandas as pd
from matplotlib import pyplot as plt
ax= wind_data.plot.area()
plt.legend(loc='center left', bbox_to_anchor= (1.0, 0.5))
plt.grid(False)
ax.set_facecolor("white")
ax.set_xlabel("Time of day")
ax.set_ylabel("Power in kW")
ax.set_xlim(0,24)
ax.set_ylim(0,50)
现在我想改变以下几个方面:
- x 轴上的值是一天中的时间。它们应该从 00:00 - 24:00 开始显示。所以每个小时都应该有一个条目。由于空间不足,条目应垂直(而不是水平)书写
- 当我导出 png 文件时,绘图周围有一个灰色框。这不应该是这样。相反,应该有一条细黑线作为轮辋
- 我想在 y 轴的每个入口处都有一些水平线。这条线不应该太强,而应该以某种方式透明,以便您可以看到它,而不会占主导地位。
是否可以使用 Matplotlib(或任何其他 python 库)来做到这一点?
编辑:这里有输入数据:
Building 1 Building 2 Building 3 Building 4 Building 5
7.04 7.04 7.04 7.04 7.04
6.36 6.36 6.36 6.36 6.36
6.4 6.4 6.4 6.4 6.4
6.1 6.1 6.1 6.1 6.1
5.88 5.88 5.88 5.88 5.88
6.18 6.18 6.18 6.18 6.18
6.16 6.16 6.16 6.16 6.16
5.82 5.82 5.82 5.82 5.82
5.28 5.28 5.28 5.28 5.28
4.82 4.82 4.82 4.82 4.82
4.18 4.18 4.18 4.18 4.18
4.02 4.02 4.02 4.02 4.02
4.08 4.08 4.08 4.08 4.08
4.24 4.24 4.24 4.24 4.24
6.24 6.24 6.24 6.24 6.24
8.44 8.44 8.44 8.44 8.44
8.72 8.72 8.72 8.72 8.72
8.06 8.06 8.06 8.06 8.06
7.16 7.16 7.16 7.16 7.16
6.52 6.52 6.52 6.52 6.52
7.16 7.16 7.16 7.16 7.16
7.88 7.88 7.88 7.88 7.88
8.44 8.44 8.44 8.44 8.44
8.56 8.56 8.56 8.56 8.56
编辑:在 Jupyter 中使用 JohanC 的解决方案代码时出现错误消息
AttributeError Traceback (most recent call last)
<ipython-input-5-51251d64e3e0> in <module>()
21 ax.set_xlim(1, 24)
22 ax.set_ylim(0, 50)
---> 23 plt.xticks(wind_data.index, labels=[f'{h:02d}:00' for h in wind_data.index], rotation=90)
24 plt.grid(axis='y', alpha=.4)
25 plt.tight_layout()
C:\Users\wi9632\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\pyplot.py in xticks(*args, **kwargs)
1704 if len(kwargs):
1705 for l in labels:
-> 1706 l.update(kwargs)
1707
1708 return locs, silent_list('Text xticklabel', labels)
C:\Users\wi9632\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\text.py in update(self, kwargs)
241 """
242 bbox = kwargs.pop('bbox', None)
--> 243 super(Text, self).update(kwargs)
244 if bbox:
245 self.set_bbox(bbox) # depends on font properties
C:\Users\wi9632\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\artist.py in update(self, props)
883 try:
884 ret = [_update_property(self, k, v)
--> 885 for k, v in props.items()]
886 finally:
887 self.eventson = store
C:\Users\wi9632\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\artist.py in <listcomp>(.0)
883 try:
884 ret = [_update_property(self, k, v)
--> 885 for k, v in props.items()]
886 finally:
887 self.eventson = store
C:\Users\wi9632\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\artist.py in _update_property(self, k, v)
876 func = getattr(self, 'set_' + k, None)
877 if func is None or not six.callable(func):
--> 878 raise AttributeError('Unknown property %s' % k)
879 return func(v)
880
AttributeError: Unknown property labels
【问题讨论】:
-
这些格式问题实际上是关于 matplotlib(Pandas 用于绘图的包)而不是 Pandas。搜索这些添加了“matplotlib”的东西应该会让你更接近答案。
-
你能分享一些数据吗?很难知道你在策划什么
-
@CodeDifferent:我刚刚做到了
标签: python pandas matplotlib